将100元兑换成10元,5元,1元,编程求不同的兑法数.要求每种兑法中都要有10元,5元,1元,
将100元兑换成10元,5元,1元,编程求不同的兑法数.要求每种兑法中都要有10元,5元,1元,
#include"stdio.h"
int main()
{
int i;//10 元 张数
int j;//5元张数
int k;//1元张数
int sum=100;
int p;
p=0;
for (i=1;i<=10;i++)
{
for(j=1;j<=20;j++)
{
for(k=1;k<=100;k++)
{
if(i*10+j*5+k*1==sum)
{
printf("%d %d %d\n",i,j,k);
p=p+1;
}
}
}
}
printf("共计:%d 种组合",p);
return 0;
}
另外一种算法,效率稍微高点。可以该面值和总和。
#include"stdio.h"
int main()
{
int i;//10 元 张数
int j;//5元张数
int k;//1元张数
int Y1,Y2,Y3;
int sum=100;
int p;
p=0;
Y1=10;
Y2=5;
Y3=1;
for (i=1;i{
for(j=1;j<=sum/Y2;j++)
{
if(((sum-(i*Y1+j*Y2))>0)&((sum-(i*Y1+j*Y2))%Y3==0))
{
k=(sum-(i*Y1+j*Y2))/Y3;
printf("%d %d %d\n",i,j,k);
p=p+1;
}
}
}
printf("共计:%d 种组合",p);
return 0;
}
设置ABC三个变量为三个面额的张数,然后循环,10块的小于十张,五块的20张,1块的一百张,循环嵌套。
算法是这样,如果你要问语法怎么写,那你自己看看书吧
相关内容