这道题特别注意的是for循环输出的值是最后那个不能满足条件的变量,与for循环并不会检查第二个条件是否符合,第一个数是无条件的
#include <stdio.h>
int main()
{
int money,sum5,sum2,coin_1,coin_2,coin_5,num=0;
scanf("%d",&money);
for(int fen_5=money/5;fen_5>0;fen_5--){
sum5=money-(fen_5*5);
coin_5=fen_5;
for(int fen_2=sum5/2;fen_2>0;fen_2--){
sum2=sum5-(fen_2*2);
coin_2=fen_2;
if (sum2==0) continue;
for(int fen_1=1;0<sum2;fen_1++){
sum2-=1;
coin_1=fen_1;
}printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",coin_5,coin_2,coin_1,coin_1+coin_2+coin_5);num++;
}
}printf("count = %d",num);
return 0;
}