课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565
【项目2:穷举法解决组合问题】先阅读例题,领会穷举法(意为“穷尽式列举”,也称枚举)的思想,然后自行选题进行解决,掌握这种程序设计的一般方法。
任务:利用穷举的方法解决下面的问题(选做一道即算完成任务,其他可以抽时间自由安排,多做会使你更聪明。)
(2)换分币:用一元人民币兑换成1分、2分和5分硬币,有多少种不同的兑换方法?
提示:根据题意设i,j,k分别为兑换的1分、2分、5分硬币的枚数,则i,j,k的值应满足:i+j*2+k*5=100,根据取值范围构造循环解题即可。
#include<iostream>
using namespace std;
int main()
{
int i,j,k,count=0;
for(i=0;i<=100;i++)
for(j=0;j<=50;j++)
for(k=0;k<=20;k++)
{
if(i+j*2+k*5==100)
{
++count;
cout<<"第"<<count<<"种";
cout<<" "<<"1分钱:"<<i;
cout<<" "<<"2分钱:"<<j;
cout<<" "<<"5分钱:"<<k<<endl;
if(count%50==0) //每输出50个方案暂停一次
{
cout<<"按任意键继续输出(找不到任意键打客服电话问询)……"<<endl;
getchar();
}
}
}
return 0;
}
运行结果: