#include<iostream> usingnamespacestd; intmain() { inta,b,c,cnt = 0; for(inta = 0;a<=100;++a) for(intb = 0;b<=100-a;++b) for(intc = 0;c<=100-a-2*b;++c) if(a+2*b+5*c==100) ++cnt; cout<<cnt<<endl; return0; } |
#include<stdio.h> void ways(int w) { int sum = 0; printf("5分 2分 1分\n"); for (int i = 0; i <= w / 5; i++){ //5分的 for (int j = 0; j <= ((w - i * 5) / 2); j++) { if (w - i * 5 - j * 2>=0) { printf("%d %d %d\n", i, j, w - i * 5 - j * 2); sum++; } } } printf("共有%d种方法\n", sum); } int main() { int w=100; ways(w); return 0; }
第一种,全单的
1.....1
2.....1
5.....1
第二种,双的
1、2......49(考虑2的个数即可)
1、5......19(考虑5的个数即可)
2、5.......9(考虑5的个数即可,5必须是偶数,即10的倍数)
第三种,三个都有
考虑5
19个5的时候,在考虑2,1个2;2个2;......2种
18个5的时候,在考虑2,.......4种
17个5的时候,在考虑2...........7种
16个5的时候,在考虑2...........9种
..
以此类推
2+4+7+9+12+14...+44+47=(2+7+12+...47)+(4+9+14+...+44)=49*5+24*9=461
461+80=541