用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;
- }
运行结果: