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

计算结果:

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

C# - 习题07_计算1分2分5分硬币各有多少枚的更多相关文章

  1. 【转】mysql分库分表,数据库分库分表思路

    原文:https://www.cnblogs.com/butterfly100/p/9034281.html 同类参考:[转]数据库的分库分表基本思想 数据库分库分表思路   一. 数据切分 关系型数 ...

  2. [心得] SQL Server Partition(表分區) 資料分佈探討

    最近在群裡有個朋友問了個問題是這樣的 用户表有一千多万行,主键是用户ID,我做了分区.但经常查询时,其它的表根据用户ID来关联,这样跨区查询,reads非常高.有什么好的处理办法?不分区的话,索引维护 ...

  3. 获取数值型数组中大于60的元素个数,给数值型数组中不足60分的加20分。(数组,for循环,if条件判断语句)

    package com.Summer_0420.cn; /** * @author Summer * 获取数值型数组中大于60的元素个数 * 给数值型数组中不足60分的加20分 */ public c ...

  4. 习题(3-3) 计算(a+b)*c的值

    题目 - 习题(3-3) 计算(a+b)*c的值   来源 计算概论B 2010 描写叙述 计算表达式(a+b)*c的值,当中a, b, c均为整数,且a,b,c的值介于-10000和10000之间( ...

  5. thinkphp5ajax分頁&&搜索後分頁

    //控制器層 //分頁 public function list_january_table(){ //設置當前頁 $page = input("post.page") ? inp ...

  6. 计蒜客 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. ...

  7. 大数据学习----day27----hive02------1. 分桶表以及分桶抽样查询 2. 导出数据 3.Hive数据类型 4 逐行运算查询基本语法(group by用法,原理补充) 5.case when(练习题,多表关联)6 排序

    1. 分桶表以及分桶抽样查询 1.1 分桶表 对Hive(Inceptor)表分桶可以将表中记录按分桶键(某个字段对应的的值)的哈希值分散进多个文件中,这些小文件称为桶. 如要按照name属性分为3个 ...

  8. js计算时间差,包括计算,天,时,分,秒

    收集两个计算时间差的计算方法代码片段: var date1=new Date(); //开始时间 var date2=new Date(); //结束时间 var date3=date2.getTim ...

  9. 数据分箱:等频分箱,等距分箱,卡方分箱,计算WOE、IV

    转载:https://zhuanlan.zhihu.com/p/38440477 转载:https://blog.csdn.net/starzhou/article/details/78930490 ...

随机推荐

  1. Spring Cloud 从入门到精通(一)Nacos 服务中心初探

     什么是Nacos? Nacos是阿里巴巴开源的项目,是一个更易于帮助构建云原生应用的动态服务发现.配置管理和服务管理平台.英文全称 Dynamic Naming and Configuration ...

  2. jvm源码解读--03 常量池的解析ConstantPool

    先看bt栈 (gdb) bt #0 ConstantPool::allocate (loader_data=0x7fe21802e868, length=87, __the_thread__=0x7f ...

  3. Spring Security OAuth2 远程命令执行漏洞(CVE-2016-4977)

    影响版本: 2.0.0-2.0.9 1.0.0-1.0.5 poc地址 https://github.com/vulhub/vulhub/blob/master/spring/CVE-2016-497 ...

  4. azure bash: kubectl: command not found

    [root@***]# az aks install-cliDownloading client to "/usr/local/bin/kubectl" from "ht ...

  5. 获取异常信息里再出异常就找不到日志了,我TM人傻了

    本系列是 我TM人傻了 系列第三期[捂脸],往期精彩回顾: 升级到Spring 5.3.x之后,GC次数急剧增加,我TM人傻了 这个大表走索引字段查询的 SQL 怎么就成全扫描了,我TM人傻了 最近组 ...

  6. NAR | 张勇洪/周超/刘小云团队合作揭示2-羟基异丁酰化修饰调控光暗适应性反应机制

    景杰生物 | 报道 ​ 组蛋白赖氨酸的翻译后修饰是表观遗传学密码的重要组成部分,它们动态地调节染色质的结构和功能,影响基因表达活性,参与生物体的环境适应性调控.赖氨酸酰化修饰家族(Acylation) ...

  7. Android NDK 直播推流与引流

    本篇介绍一下直播技术中推流与引流的简单实现. 1.流媒体服务器测试 首先利用快直播 app (其他支持 RTMP 推流与引流的 app 亦可)和 ffplay.exe 对流媒体服务器进行测试. 快直播 ...

  8. small-spring 代码贡献者3个月,敢说精通Spring了,分享我的总结!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.为什么手写Spring 这个与我们码农朝夕相处的 Spring,就像睡在你身边的媳妇,你知 ...

  9. mysql《一》

    一.启动和停止服务器 通过管理员权限打开cmd命令指示符 通过 net stop mysql(自己的服务器名字)  停止服务器 通过 net start mysql(自己的服务器名字)  启动服务器 ...

  10. JVM学习笔记-第三章-垃圾收集器与内存分配策略

    JVM学习笔记-第三章-垃圾收集器与内存分配策略 tips:对于3.4之前的章节可见博客:https://blog.csdn.net/sanhewuyang/article/details/95380 ...