• 时间: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();}}
}

运行结果:

按照这个哥们儿的思路,设置三个未知数这一点与我是相同的,他给我的启发有下面几点:

  1. 将246也设置为一个变量money在代码中体现出来,那我同样可以将100也设置为一个变量,这样的好处是方便解决硬币个数变化为1000甚至10000的情况。
  2. 他用money这一个变量,通过取余和除法,完全独立的表示出了三个变量的值,启示我在遍历5分硬币的个数时,用5分硬币的个数可以完全独立的表示出1分和2分硬币的个数。
  3. 利用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();}}
}

计算结果:

到此结束,如果上述过程中有任何的错误或者谁有更好的方法,希望看到的朋友不吝赐教,多多指点!

转载于:https://www.cnblogs.com/jswl/p/7492678.html

C# - 习题07_计算1分2分5分硬币各有多少枚相关推荐

  1. 计算分数数组中去掉最低分的平均分,并打印

    package Day05;/*** 2.定义一个分数数组:double[] arr = {88.5,96,97,74,88.2,58.5,77.9,90,99};* 计算分数数组中去掉最低分的平均分 ...

  2. 习题5-4 使用函数求素数和 (20 分)

    习题5-4 使用函数求素数和 (20 分) 本题要求实现一个判断素数的简单函数.以及利用该函数计算给定区间内素数和的函数. 素数就是只能被1和自身整除的正整数.注意:1不是素数,2是素数. 函数接口定 ...

  3. PTA 习题5-2 使用函数求奇数和 (15分)

    习题5-2 使用函数求奇数和 (15分) 本题要求实现一个函数,计算N个整数中所有奇数的和,同时实现一个判断奇偶性的函数. 函数接口定义: int even( int n ); int OddSum( ...

  4. 习题1.9 有序数组的插入 (20 分)

    习题1.9 有序数组的插入 (20 分) 本题要求将任一给定元素插入从大到小排好序的数组中合适的位置,以保持结果依然有序. 函数接口定义: bool Insert( List L, ElementTy ...

  5. 在控制台中录入学生成绩,计算总分,最高分,最低分(Python)

    # 练习1:在控制台中录入学生成绩,计算总分,最高分,最低分. # "请输入学生总数:" # "请输入第1个学生成绩:" stu_count = int(inp ...

  6. PTA11、 输入输出-计算字符串中的数 (10 分)

    11. 输入输出-计算字符串中的数 (10 分) 将字符串中的每个数都抽取出来,然后统计所有数的个数并求和. 输入格式: 一行字符串,字符串中的数之间用1个空格或者多个空格分隔. 输出格式: 第1行: ...

  7. 实验3-2 计算符号函数的值 (10 分)

    实验3-2 计算符号函数的值 (10 分) 对于任一整数n,符号函数sig**n(n)的定义如下: 请编写程序计算该函数对任一输入整数的值. 输入格式: 输入在一行中给出整数n. 输出格式: 在一行中 ...

  8. 实验2-1-3 计算物体自由下落的距离 (5 分)

    实验2-1-3 计算物体自由下落的距离 (5 分) 一个物体从100米的高空自由落下.编写程序,求它在前3秒内下落的垂直距离.设重力加速度为10米/秒2. 输入格式: 本题目没有输入. 输出格式: 按 ...

  9. 7-1 统计正数和负数的个数然后计算这些数的平均值 (15 分)-java

    7-1 统计正数和负数的个数然后计算这些数的平均值 (15 分) 编写程序,输入未指定个数的整数,判断读入的正数有多少个,读入的负数有多少个,然后计算这些输入值得总和及平均值(不对0计数).当输入为0 ...

最新文章

  1. 很蛋疼的ORA-00911:无效的字符错误
  2. HDU 2282 Chocolate (最小费用最大流)
  3. axis2 调用webservice
  4. T-SQL 之 执行顺序
  5. SpringMVC子父容器源码剖析
  6. 20191010:希尔排序代码详解
  7. 软工结对项目之词频统计update
  8. 银行对公业务结构图梳理
  9. Java中用split函数进行分割字符串。
  10. 手机app登录显示服务器异常,手机app 连接云服务器异常
  11. O2OA开源企业办公开发平台:使用Vue-CLI开发O2应用
  12. android 人脸识别边框_Android实现简单的人脸识别
  13. Linux环境下向github上传代码(生成token、生成本地密钥)
  14. 数据挖掘算法和实践(三):朴素贝叶斯(mushrooms蘑菇数据集)
  15. bootstrap组件——导航条
  16. paip 输入法编程----二级汉字2350个常用汉字2350个
  17. Python 给词语编码新世纪五笔
  18. java中私有变量和方法_Java 私有变量和私有方法
  19. 14道初级程序员进阶中高级的必经环节
  20. 【第23期】令人舒心又伤脑的12张数学原理动图!你能看懂几个

热门文章

  1. 王半仙儿的日记-0009
  2. 官方公布中国自行车排名十强辐轮王土拨鼠全世界碳纤维自行车品牌
  3. NIPS2018最佳论文解读:Neural Ordinary Differential Equations...
  4. 天猫淘宝登陆页面无限循环 解决办法
  5. 小屁孩的伤感空间日志_多谢伱的不珍惜让我学会死訫
  6. C/C++笔试题(13)
  7. 去掉UUID的小横线,如果你觉得不爽的话,哈哈
  8. 原创 | 聊聊延迟满足
  9. 近3万个斗图头像图片大全ACCESS\EXCEL
  10. (14)ObjectARX2015 + vs2012创建和编辑对象时的动态拖动技术