题目描述:
把2019分解成3个各不相同的正整数之和,并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法?
注意交换3个整数的顺序被视为同一种方法,例如1000+1001+18 和1001+1000+18 被视为同一种。
思路:
三重循环,后面的数字比前面的数字大就不会重复啦
正确答案:
40785
代码:
#include<bits/stdc++.h>
using namespace std;
int cnt;
bool check(int n)
{
int flag = 0;
while(n > 0)
{
int t = n % 10;
if(t == 2 || t == 4) return true;
n /= 10;
}
return false;
}
int main()
{
for(int a = 1 ; a <= 2019 ; a ++)
{
if(check(a)) continue;
for(int b = 1 ; b <= 2019 ; b ++)
{
if(check(b)) continue;
for(int c = 1 ; c <= 2019 ; c ++)
{
if(a + b + c == 2019 && a < b && a < c && b < c && !check(c)) cnt ++;
}
}
}
printf("%d",cnt);
return 0;
}
该博客介绍了一个数学问题,即如何将2019分解为三个不包含数字2和4的正整数之和,并且避免重复。博主通过三重循环遍历所有可能的组合,找到符合条件的解,最终得出共有40785种不同的分解方法。代码中使用了C++编写,并展示了详细的解题思路。
1859

被折叠的 条评论
为什么被折叠?



