#include
main()
{
int m;
scanf("%d",&m);
for (int i = 0;i <= m; i++)
for (int j = 0; j <= m; j++)
for (int k = 0; k <= m; k++)
{
if (m % 5 == 0 && 5 * k == m)
{
printf("fen5:%d, fen2:0, fen1:0, total:%d\n",k,k);
break;
}
else
{
if (5*k + 2*j + i == m)
{
printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",k,j,i,k+j+i);
if (m / 5 == k)
break;
}
}
}
}
这题不用循环
告诉你了问你至少多少个,那肯定是优先用5分的,其次2分的,最后1分的,而且每种硬币并没有数量限制
你直接除以5就是5分硬币的数量,取余就是剩余的数量
然后再除以2,取余
这不就有了吗
就算用循环,你逻辑也没写对呀,为什么还分两种情况讨论,5*k又代表什么