C# - 习题07_计算1分2分5分硬币各有多少枚
- 时间:2017-09-08 整理:byzqy
题目:现在有1分、2分、5分硬币共100个,总金额为2.46元,请用程序计算出1分、2分、5分各有多少枚,有多少种算法?
这是最近面试遇到的一个题目,刚开始没有思路,一看这是一个三元一次方程组,假设个数分别为a、b、c的话,就会有三个未知数和两个方程组,怎么解?数学真是白学了!
于是在网上搜到了这个题目,不过题目略有不同:
文件:Program1.cs
- //问题:1分2分5分硬币,一共2.46元,求各种硬币的个数
- //回答:你没说明是不是求需要的最少的硬币的个数,因为这样有上千种组成,所以我就给你写个控制台的,求需要最少的硬币个数吧
- using System;
- namespace ConsoleApplication1
- {
- class Program1
- {
- static void Main(string[] args)
- {
- int money = 246; //总共246分
- int number5; //number5表示需要5分的硬币个数
- int number2; //number2表示需要2分的硬币个数
- int number1; //number1表示需要1分的硬币个数
- number5 = money / 5;
- number2 = (money % 5) / 2;
- number1 = money % 5 % 2;
- Console.WriteLine("需要:" + "\n"
- + "5分的硬币:" + number5 + "个" + "\n"
- + "2分的硬币:" + number2 + "个" + "\n"
- + "1分的硬币:" + number1 + "个");
- Console.ReadLine();
- }
- }
- }
运行结果:
按照这个哥们儿的思路,设置三个未知数这一点与我是相同的,他给我的启发有下面几点:
- 将246也设置为一个变量money在代码中体现出来,那我同样可以将100也设置为一个变量,这样的好处是方便解决硬币个数变化为1000甚至10000的情况。
- 他用money这一个变量,通过取余和除法,完全独立的表示出了三个变量的值,启示我在遍历5分硬币的个数时,用5分硬币的个数可以完全独立的表示出1分和2分硬币的个数。
- 利用for循环遍历5分硬币的个数是另一个哥们给我的启发,既然只有2个方程3个未知数的三元一次方程,想想就知道答案可能不止一种,那给我的第一想法就是采用“试”的方法,先将一种硬币可能出现的个数“代”进去,幸运的是发现两个方程式可以通过加减,消除掉其中一个未知数,就可以做到上面提到的,用其中一个硬币的个数完全独立的表示出另外两枚硬币的个数。
- /*
- a + b + c = 100;
- a + 2b + 5c = 246;
- b = 246 - 100 - 4c;
- a = 3c - 246 + 2*100;
- */
- /*
文件:Program2.cs
- using System;
- namespace ConsoleApplication2
- {
- class Program2
- {
- static void Main(string[] args)
- {
- int money = 246; //总共246分
- int amount = 100;
- int number5; //number5表示需要5分的硬币个数
- int number2; //number2表示需要2分的硬币个数
- int number1; //number1表示需要1分的硬币个数
- int count = 0;
- for (int i = 0; i < money/5; i++)
- {
- number5 = i;
- number2 = money - amount - 4 * number5;
- number1 = 3 * number5 - money + 2 * amount;
- if (number2 >= 0 && number1 >= 0)
- {
- Console.WriteLine("5分:{0}个,2分:{1}个,1分:{2}个", number5, number2, number1);
- count++;
- }
- }
- Console.WriteLine("共有{0}种算法……", count);
- Console.ReadLine();
- }
- }
- }
计算结果:
到此结束,如果上述过程中有任何的错误或者谁有更好的方法,希望看到的朋友不吝赐教,多多指点!
C# - 习题07_计算1分2分5分硬币各有多少枚的更多相关文章
- 【转】mysql分库分表,数据库分库分表思路
原文:https://www.cnblogs.com/butterfly100/p/9034281.html 同类参考:[转]数据库的分库分表基本思想 数据库分库分表思路 一. 数据切分 关系型数 ...
- [心得] SQL Server Partition(表分區) 資料分佈探討
最近在群裡有個朋友問了個問題是這樣的 用户表有一千多万行,主键是用户ID,我做了分区.但经常查询时,其它的表根据用户ID来关联,这样跨区查询,reads非常高.有什么好的处理办法?不分区的话,索引维护 ...
- 获取数值型数组中大于60的元素个数,给数值型数组中不足60分的加20分。(数组,for循环,if条件判断语句)
package com.Summer_0420.cn; /** * @author Summer * 获取数值型数组中大于60的元素个数 * 给数值型数组中不足60分的加20分 */ public c ...
- 习题(3-3) 计算(a+b)*c的值
题目 - 习题(3-3) 计算(a+b)*c的值 来源 计算概论B 2010 描写叙述 计算表达式(a+b)*c的值,当中a, b, c均为整数,且a,b,c的值介于-10000和10000之间( ...
- thinkphp5ajax分頁&&搜索後分頁
//控制器層 //分頁 public function list_january_table(){ //設置當前頁 $page = input("post.page") ? inp ...
- 计蒜客 39280.Travel-二分+最短路dijkstra-二分过程中保存结果,因为二分完最后的不一定是结果 (The 2019 ACM-ICPC China Shannxi Provincial Programming Contest M.) 2019ICPC西安邀请赛现场赛重现赛
Travel There are nn planets in the MOT galaxy, and each planet has a unique number from 1 \sim n1∼n. ...
- 大数据学习----day27----hive02------1. 分桶表以及分桶抽样查询 2. 导出数据 3.Hive数据类型 4 逐行运算查询基本语法(group by用法,原理补充) 5.case when(练习题,多表关联)6 排序
1. 分桶表以及分桶抽样查询 1.1 分桶表 对Hive(Inceptor)表分桶可以将表中记录按分桶键(某个字段对应的的值)的哈希值分散进多个文件中,这些小文件称为桶. 如要按照name属性分为3个 ...
- js计算时间差,包括计算,天,时,分,秒
收集两个计算时间差的计算方法代码片段: var date1=new Date(); //开始时间 var date2=new Date(); //结束时间 var date3=date2.getTim ...
- 数据分箱:等频分箱,等距分箱,卡方分箱,计算WOE、IV
转载:https://zhuanlan.zhihu.com/p/38440477 转载:https://blog.csdn.net/starzhou/article/details/78930490 ...
随机推荐
- odoo14--odoo前端框架owl【odoo web library】
原文链接:https://www.alanhou.org/odoo-14-owl-todolist/ 1.组件树 Root / \ A B / \ ...
- 第十八篇 -- QTreeWidget应用篇 -- kuwo
效果图: 最近学习QTreeWidget,总想着做些什么,正好学习过一点简单的爬虫,就做了一个简易的"酷我音乐下载器",界面可能不太好看,以后继续优化. ui_kuwo.py # ...
- Docker未授权漏洞(2375)
漏洞验证 直接使用浏览器访问 http://ip:2335 http://ip:2335/version http://ip:2335/info docker -H tcp://ip:2375 ver ...
- PHP imap 远程命令执行漏洞(CVE-2018-19518)
影响版本 PHP:5.6.38 系统:Debian/ubuntu 构造数据包 成功执行命令echo '1234567890'>/tmp/test0001
- 大数据学习(06)——Ozone介绍
前面几篇文章把Hadoop常用的模块都学习了,剩下一个新模块Ozone,截止到今天最新版本是0.5.0Beta,还没出正式版.好在官方网站有文档,还是中文版的,但是中文版资料没有翻译完整,我试着把它都 ...
- helm离线安装helm-push插件
helm-push版本:helm-push_0.9.0_linux_amd64 helm-push安装包 百度云: 链接: helm-push_0.9.0_linux_amd64 提取码: 26b ...
- [源码解析] 机器学习参数服务器 Paracel (1)-----总体架构
[源码解析] 机器学习参数服务器 Paracel (1)-----总体架构 目录 [源码解析] 机器学习参数服务器 Paracel (1)-----总体架构 0x00 摘要 0x01使用 1.1 配置 ...
- python,ctf笔记随笔
一.在centos虚拟机中安装pyhton3环境: 安装pip3:yum install python36-pip 将pip升级到最新版本:pip3 install --upgrade pip 运行p ...
- Android招聘市场技术要求越来越高,从事三年开发是否应该考虑转行?
这是在某论坛看到的一个网友的疑问,他说感觉现在Android 开发这条路越来越难走了.下面是他的分享: 本来已经做好了好几个月找不到工作的准备.不过这两周感觉面试机会还算可以.两周10个面试感觉刚刚好 ...
- 启动Eclipse时,弹出JVM terminated. Exit code=127..错误的解决方案
在Linux环境下,启动Eclipse,会弹出并报如下的错误,且不能启动该工具 JVM terminated. Exit code=127/eclipse/jdk1.7.0_71/bin/java-D ...