A41771. 分解整数
填空题
困难
知识点
题目描述
分解整数
题目描述
给定一个正整数N,然后将N分解成3个正整数之和。计算出共有多少种符合要求的分解方法。
要求:
1)分解的3个正整数各不相同;
2)分解的3个正整数中都不含数字3和7。
如:N为8,可分解为(1,1,6)、(1,2,5)、(1,3,4)、(2,2,4)、(2,3,3),其中满足要求的分解方法有1种,为(1,2,5)。
输入描述
输入一个正整数N(5<N<501),表示需要分解的正整数
输出描述
输出一个整数,表示共有多少种符合要求的分解方法
样例输入
8
样例输出
1
参考答案
#include <iostream>
#include <cstdio>
using namespace std;
bool check(int a,int b,int c){
if(a>=b || a>=c || b>=c) return false;
while(a>0){
if(a%10==3||a%10==7) return false;
a/=10;
}
while(b>0){
if(b%10==3||b%10==7) return false;
b/=10;
}
while(c>0){
if(c%10==3||c%10==7) return false;
c/=10;
}
return true;
}
int main()
{
int n,ans=0;
cin>>n;
for(int i=1;i<=n/3;i++)
for(int j=i+1;j<=n/2;j++){
int k=n-i-j;
if(check(i,j,k)) ans++;
}
cout<<ans<<endl;
return 0;
}
上一题
下一题