用1分钱、2分钱、5分钱组成1元钱,请给出所有的组合方式。
示例代码如下:
#include <stdio.h>
int main(){
int m, n, k=0;
for(m=0; m<=100/5; m++)
for(n=0; n<=(100-5*m)/2; n++){
printf("1分%d个,2分%d个,5分%d个\n", 100-5*m-2*n, n, m);
k++;
}
printf("共有%d种组合方式\n", k);
return 0;
}
还有另外一种解法,也输出了组合的个数,示例代码如下:
#include <stdio.h>
int main (){
int n5, n2, k=0;
for(n5=100/5; n5>=0; --n5)
for(n2=(100-5*n5)/2; n2>=0; --n2){
printf ("5分%d个,2分%d个,1分%d个\n", n5, n2, 100-5*n5-2*n2); //输出结果
k++;
}
printf("共有%d种组合方式\n", k);
return 0;
}
运行结果: