题目描述
把 x 分解成 3 个各不相同的正整数之和, 并且要求每个正整数都不包 含数字 2 和 4, 一共有多少种不同的分解方法? 注意交换 3 个整数的顺序被视为同一种方法, 例如当分解 2019 时, 1000 + 1001 + 18 和 1001 + 1000 + 18 被视为同一种.
输入描述
有多组测试数据, 每组测试数据占一行.
每行输入一个整数 x (0 <x < 10000).
输出描述
对于每组输入, 输出一行答案.
样例输入
5
样例输出
- 0
- #include<iostream>
- using namespace std;
- int deside(int n){
- int a,b,c,d;
- a=n%10;
- n=n/10;
- b=n%10;
- n=n/10;
- c=n%10;
- n=n/10;
- d=n%10;
- if(a==2||a==4||b==2||b==4||c==2||c==4||d==2||d==4){
- return 1;
- }
- else{
- return 0;
- }
- }
- int main(){
- int m,i,j,k;
- while(cin>>m){
- int num=0,p;
- int choice[m*2];
- for(i=1;i<m-1;i++){
- if(deside(i)){
- continue;
- }
- for(j=i+1;j<m;j++){
- int nm=0;
- if(deside(j)){
- continue;
- }
- k=m-i-j;
- if(k<=0){
- continue;
- }
- if(deside(k)){
- continue;
- }
- if(i==k||j==k){
- continue;
- }
- num++;
- }
- }
- num=num/3;
- cout<<num<<endl;
- }
- return 0;
- }
来源: http://www.bubuko.com/infodetail-3100723.html