给你若干钱, 有1元, 5元, 10元, 25元, 50元这5种小钱可以换. 求共有多少种方法.
| case 3: return 10; break ; |
| case 4: return 25; break ; |
| case 5: return 50; break ; |
| int way( int j, int k = 5) |
| else if ((j < 0)||(k == 0)) |
| return way(j, k - 1) + way(j - s(k), k); |
| int way( int j, int k =5); |
要是想一一列出1元, 5元, 10元, 25元, 50元各换了多少张, 再写一个程序.
| int a, i, j, k, o, p,q = 0; |
| for (i = 0; i <= ( int )a/50; i++) |
| { for (j = 0; j <= ( int )(a - 50*i)/25; j++) |
| { for (k = 0; k <= ( int )(a-50*i-j*25)/10; k++) |
| { for (o = 0; o <= ( int )(a-50*i-j*25-k*10)/5; o++) |
| { for (p = 0; p <= ( int )(a-50*i-j*25-k*10-o*5); p++) |
| if (50*i+25*j+10*k+5*o+p == a) |
| cout << "50的换" <<i<< "张,25的换" <<j<< "张,10的换" <<k<< "张,5的换" <<o<< "张,1块的换" <<p<< "张." <<endl; |
| cout<< "共有:" <<q<< "种方法." <<endl; |
转载于:https://blog.51cto.com/lightweight/558926