1dollar = 100cents (1元美金=100分钱)
Penny=$0.01 Nickel=$0.05 Dime=$0.10 Quarter=$0.25 Half Dollar=$0.50
美金中有以上五种金币,用以上金币拼出1元美金就是100分,有多少种方法。
例如,输入1,就输出292,就是说,1元可以有292种组合方法。 而且,由运行时输入,然后给出方法数,范围是2元以下(含2元)。
[此贴子已经被作者于2004-11-17 22:08:52编辑过]
----------------解决方案--------------------------------------------------------
题目的意思是,用5种不同面值的金币,组成1元美金的可能数。
例如:100个1分钱是一种方法,20个5分钱,10个10分钱,4个25分,2个50分,还可以混合来组。
----------------解决方案--------------------------------------------------------
#include<stdio.h>
main()
{int i=0,a,b,c,d,e,f;
printf("Input the money:"); scanf("%d",&f);
for(a=0;a<=100;a++)
for(b=0;b<=20;b++)
for(c=0;c<=10;c++)
for(d=0;d<=4;d++)
for(e=0;e<=2;e++)
if(a+b*5+c*10+d*20+e*50==f*100) i++;
printf("The total=%d\n");
getch();
}
----------------解决方案--------------------------------------------------------
百鸡百钱的变形!!!!
可以注意一下,几个循环把哪个循环放到最外面,从而减少循环次数!!!
----------------解决方案--------------------------------------------------------
上面的大虾说的对,就是用穷举法做的
不过,上面的这个程序好象不对的!!
----------------解决方案--------------------------------------------------------
给空前15分
----------------解决方案--------------------------------------------------------
不过好像给得太少了
----------------解决方案--------------------------------------------------------
#include<iostream.h> #include<stdlib.h>
void main() { int count=0; float temp; cout<<"input value of money:"; cin>>temp; int value=int(temp*100); for(int half=0; 50*half<=value; half++) for(int quarter=0; 25*quarter+50*half<=value; quarter++) for(int dime=0; 10*dime+25*quarter+50*half<=value; dime++) for(int nickle=0; 5*nickle+10*dime+25*quarter+50*half<=value; nickle++) for(int penny=0; penny+5*nickle+10*dime+25*quarter+50*half<=value; penny++) if(penny+5*nickle+10*dime+25*quarter+50*half==value) count++; cout<<"There are "<<count<<" ways to make $"<<temp<<endl; system("pause"); }
----------------解决方案--------------------------------------------------------
马甲动作好快。给分你。呵呵……
----------------解决方案--------------------------------------------------------
#include<iostream.h> #include<stdlib.h>
void main() { int count=0; float temp; cout<<"input value of money:"; cin>>temp; int value=int(temp*100); for(int half=0; 50*half<=value; half++) for(int quarter=0; 25*quarter+50*half<=value; quarter++) for(int dime=0; 10*dime+25*quarter+50*half<=value; dime++) for(int nickle=0; 5*nickle+10*dime+25*quarter+50*half<=value; nickle++) for(int penny=0; penny+5*nickle+10*dime+25*quarter+50*half<=value; penny++) if(penny+5*nickle+10*dime+25*quarter+50*half==value) count++; cout<<"There are "<<count<<" ways to make $"<<temp<<endl; system("pause"); }
----------------解决方案--------------------------------------------------------