基础题_6 输入正整数m,用最少张数的人民币凑成钱数m,并输出求取结果
3.1 需求分析:
本程序主要解决的是: 输入正整数m,它代表一个人民币钱数(元数),编程实现以下方案:使用最少张数的人民币纸币,凑成上述的钱数m,并输出求取结果。并已知现在共有7种面值的人民币纸币,分别为:100,50,20,10,5,2,1.
3.2 概要设计:
本程设计思路: 本程序较为简单,主要是实现一个循环调用。实现也较容易,首先定义一个数组a[7]={100,50,20,10,5,2,1},然后在循环条件下,不断执行m=m-a[i],并输出此时的a[i],直到m=0时结束程序。
程序流程图(如下图):
3.3 详细设计与编码:
见上传程序。
3.4 调试分析:
本程序比较简单。在调试过程中遇到的问题主要是程序的实现和设计问题,程序调试时只需注意递归的调用。
程序执行的结果:
3.5 用户使用说明:
用户根据程序的提示输入一个正整数,要求小于65535,回车后程序即执行,输出要求方案。
3.6 设计心得:
此次程序设计比较简单,主要要注意的问题是循环嵌套语句的使用及循环语句条件的设置。在设计过程中感觉自己在一些编程技巧方面很欠缺,对于问题的解决方面花的时间较多。体会到自己在程序设计及编写方面还有很多要学习和提高的地方。
#include<iostream>
using namespace std;
void main(){
int i,n;
int a[7]={100,50,20,10,5,2,1};
cout<<"输入数值:";
cin>>n;原文请找腾讯752018766辣,文-论'文.网http://www.751com.cn
for(i=0;i<7;i++)
while(n>=a[i])
{
n=n-a[i];
cout<<a[i]<<endl;1832