问题及代码:
<pre class="cpp" name="code">/* *Copyright (c)2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:王艺霖 *完成日期:2016年3月13日 *版 本 号:v1.0 * *问题描述:用一元人民币兑换成1分、2分、5分硬币,有多少种不同的兑换方法?请输出所有可能的方案。 *提示:根据题意设i,j,k分别为兑换的1分、2分、5分硬币的枚数,则,j,k的值应满足:i+j*2+k*5=100,根据取值范围构造循环解题即可。 * *输入描述:无输入 *输出描述:输出1分、2分、5分硬币的枚数所有情况。 */ #include<iostream> using namespace std; int main() { int i,j,k; for(k=20;k>=0;k--) { for(i=0,j=0;i<=100,j<=50;i++,j++) { if(5*k+i+2*j==100) cout<<"1分硬币枚数:"<<i<<" "<<"2分硬币枚数:"<<j<<" "<<"5分硬币枚数:"<<k<<endl; } } for(i=100;i>=0;i--) { for(k=0,j=0;k<=20,j<=50;k++,j++) { if(5*k+i+2*j==100) cout<<"1分硬币枚数:"<<i<<" "<<"2分硬币枚数:"<<j<<" "<<"5分硬币枚数:"<<k<<endl; } } for(j=50;j>=0;j--) { for(i=0,k=0;i<=100,k<=20;i++,k++) { if(5*k+i+2*j==100) cout<<"1分硬币枚数:"<<i<<" "<<"2分硬币枚数:"<<j<<" "<<"5分硬币枚数:"<<k<<endl; } } return 0; }
运行结果:
知识点总结:
穷举法,构造循环结构
学习心得:
利用循环一切都变简单!