题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
把 20192019 分解成 33 个各不相同的正整数之和,并且要求每个正整数都不包含数字 22 和 44,一共有多少种不同的分解方法?
注意交换 33 个整数的顺序被视为同一种方法,例如 1000+1001+181000+1001+18 和 1001+1000+181001+1000+18 被视为同一种。
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
#include<bits/stdc++.h>
using namespace std;
bool check(int x){
while(x){
if(x%10==2||x%10==4) return false;
x/=10;
}
return true;
}
int main(){
int n = 2019,cnt = 0;
//定义了i<j<k; 且k=n-i-j;
for(int i = 1; i <= n; i++){
for(int j = i + 1; j <= n; j++){
int k = n - i - j;
if(k<=j) break;
if(check(i)&&check(j)&&check(k)) cnt++;
}
}
cout<<cnt<<endl;
return 0;
}