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