C++使用最少张数的人民币纸币凑成钱数源码
需求分析
编程序,输入正整数m,它代表一个人民币钱数(元数)。求取这样一个方案,使用最少张数的人民币纸币,凑成上述的钱数m,并输出求取结果。
注意,现在共有7种元以上面值的人民币纸币,分别为:100,50,20,10,5,2,1。
问题可以抽象成求一个正整数,怎样用最少的个数的数字拼凑相加得到,现只有100,50,20,10,5,2,1这几个数字.
4.2概要设计
先从大的开始找起,然后减去可以整除的部分,再看相对较小的,以此循环,直到1为止.
4.3详细设计与编码
代码见上传文件
流程图如下
4.4调试分析
输入人民币钱数为150
运行结果如下
再输入人民币钱数为188
输出的张数为
4.5用户使用说明
用户可以根据提示输入任意正整数的人民币钱数,系统可以帮你计算出得到这些人民币的最少的张数.使用起来比较方便.
4.6设计心得.
利用各种关系运算,包括选择运算等等,对自己的编程思想有很大帮助.
#include <stdio.h>
void main(){
int m,a,b,c,d,e,f,g;
bool n=false;
printf("请输入人民币钱数\n");
scanf("%d",&m);
if(n||m/100>=1)
{a=m/100;
m=m%100;
原文请找腾讯752018766辣,文-论'文.网
http://www.751com.cn {c=m/20;
m=m%20;
n=true;}
if(n||m/10>=1)
{d=m/10;
m=m%10;
n=true;}
if(n||m/5>=1)
{e=m/5;
m=m%5;
n=true;}
if(n||m/2>=1)
{f=m/2;
m=m%2;
n=true;}
if(n||m/1>=1)
{g=m;
m=m%1;
n=true;}
printf("张数为%d\n",(a+b+c+d+e+f+g));}1819
C++使用最少张数的人民币纸币凑成钱数源码下载如图片无法显示或论文不完整,请联系qq752018766