50元兑换成5元,2元和1元的计算方法有多少种?
我自己写了一个程序 但是运行出来的结果好像和标准答案不大一样 我觉得我的思路是对的 求大神帮我解惑
main()
{int a,b,c,sum=0;
for(a=0;a<=10;a++)
for(b=0;b<=25;b++)
{c=50-5*a-2*b;
if((5*a+2*b+c)==50)
sum++;
}
getch();
printf("%d\n",sum);
}
下面的这个是给出的标准答案
main( )
{ int x,f,t,n;
x=0;f=0;
while(f<=10)
{t=0;while (t<=25)
{n=50—f*5—T*2;
if(n>=o)x++;
t++:}
f++;}
printf(“%d”,x);
}
答案:146
我先前给的这个程序 答案是286
main()
{
int a,b,c,sum=0;
for(a=0;a<=10;a++)
for(b=0;b<=25;b++)
for(c=0;c<=50;c++)
{
if((5*a+2*b+c)==50)
sum++;
printf("%3d%4d%5d\n",a,b,c);
}
printf("%d\n",sum);
}
改成这样就可以避免你说的那种困境了,你没有指定c的范围,运行出来就会有负数参与的。