求最少张数:
#include
#include
void main(void)
{ int n5,n10,n20;
int m5,m10,m20;
int min,count=0
for (n5=0;n5<20;n5++)
{
for (n10=0;n10<10;n10++)
{
for (n20=0;n20<5;n20++)
{
if (n5 * 5 + n10 * 10 + n20 * 2 0 ==100)
{
if(count==0)
{
min=n5+n20+n10;
count++;
m5=n5;m10=n10;m20=n20;
}
else if(min>n5+n20+n10)
{
min=n5+n20+n10;
m5=n5;m10=n10;m20=n20;
}
}
printf("$5--%d, $10--%d, $20--%d\n",n5,n10,n20);
}
}
}
}
循环遍历计算
。设20,10,5 的张数 n20,n10,n5,至少有一张,n20,n10,n5 循环初值从 1 起如果 n20 * 20 + n10 * 10 + n5 * 5 == 100 则为解。
#include
#include
void main(void)
{ int n5,n10,n20;
for (n5=1;n5<20;n5++)
{
for (n10=1;n10<10;n10++)
{
for (n20=1;n20<5;n20++)
{
if (n5 * 5 + n10 * 10 + n20 * 2 0 ==100)
printf("$5--%d, $10--%d, $20--%d\n",n5,n10,n20);
}
}
}
}