. 编写C++风格的程序,解决百钱问题,将1元人民币兑换成1,2,5分的硬币,有多少种换法?

要简单,可行的,最后的输出结果应是方法的个数
要求是没有错误的。。。自己验证过的。。。

#include <iostream>
using namespace std;

int main()
{
int i,j,k;
int sum=0;

for(i=0;i<=100;i++)
for(j=0;j<=50;j++)
for(k=0;k<=20;k++)
{
if(i*1+2*j+5*k==100)
sum++;
}
cout<<"总数为:"<<sum<<endl;
}

已经通过g++编译,运行过,结果是541。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-09-11
#include <iostream>
using namespace std;

void main()
{
int i1,i2,i5;
int sum=0;

for(i1=0;i1<=100;i1++)
for(i2=0;i2<=50;i2++)
for(i5=0;i5<=20;i5++)
if(i1+2*i2+5*i5==100)
sum++;
cout<<sum<<endl;
}
第2个回答  2008-09-11
//应该每种换法都包含至少1枚的1分2分5分币
#include <iostream.h>
void main()
{
int i1,i2,i5;
int sum=0;
for(i1=1;i1<=100;i1++)
for(i2=1;i2<=50;i2++)
for(i5=1;i5<=20;i5++)
if(i1+2*i2+5*i5==100)
{
sum++;
}
cout<<sum<<endl;
}
//结果461种
第4个回答  2012-03-13
#include"iostream"
using namespace std;
int main()
{
int i,j,k,num;
num=0;
for(i=0;i<=100;i++)
{
for(j=0;j<=50;j++)
{
for(k=0;k<=20;k++)
if(i*1+2*j+5*k==100)
{
cout<<i<<' '<<j<<' '<<k<<endl;
num=num+1;
}
}
}
cout<<num<<endl;
getchar();
return 0;

}
相似回答