| #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