51,724
社区成员




本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
把 20192019 分解成 33 个各不相同的正整数之和,并且要求每个正整数都不包含数字 22 和 44,一共有多少种不同的分解方法?
注意交换 33 个整数的顺序被视为同一种方法,例如 1000+1001+181000+1001+18 和 1001+1000+181001+1000+18 被视为同一种。
#include <stdio.h>
#include <stdlib.h>
int check(int a){
while(a){
if( a%10 == 2 || a%10 == 4 ) return 0;
a /= 10;
}
return 1;
}
int main()
{
int sum = 0;
for(int i = 1; i <= 673; i++){
for(int j = i+1; j <= 2019; j++){
int k = 2019 - i - j;
if(check(i) && check(j) && check(k)){
if(j < k) sum++;
}
}
}
printf("%d", sum);
return 0;
}
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
今年的植树节(20122012 年 33 月 1212 日),小明和他的叔叔还有小伙伴们一起去植树。休息的时候,小明的同学问他叔叔多大年纪,他叔叔说:“我说个题目,看你们谁先猜出来!”
“把我出生的年月日连起来拼成一个 88 位数(月、日不足两位前补 00)正好可以被今天的年、月、日整除!”
他想了想,又补充到:“再给个提示,我是 66 月出生的。”
根据这些信息,请你帮小明算一下,他叔叔的出生年月日。
格式是年月日连成的 88 位数。例如,如果是 19481948 年 66 月 1212 日,就写:1948061219480612。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int d, y, ans = 0;
for(y = 1900; y < 2012; y++){
for(d = 1; d < 31; d++){
ans = y*10000 + 600 + d;
if(ans%2012 == 0 && ans%3 == 0 && ans%12 == 0){
printf("%d", ans);
}
}
}
return 0;
}