题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
把 20192019 分解成 33 个各不相同的正整数之和,并且要求每个正整数都不包含数字 22 和 44,一共有多少种不同的分解方法?
注意交换 33 个整数的顺序被视为同一种方法,例如 1000+1001+181000+1001+18 和 1001+1000+181001+1000+18 被视为同一种。
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
static int result = 0;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
//要求每个数不包含2 4
//i j k 各不相同
//让i<j<k
for(int i = 1; i < 2019; i++){
for(int j = i + 1; j < 2019; j++){
int k = 2019 - i - j;
if((i < j) && (j < k)){
if(isLegal(i) && isLegal(j) && isLegal(k)) result++;
}
}
}
System.out.println(result);
scan.close();
}
//返回true则合法 返回false则无效
static boolean isLegal(int n){
//分解每一位判断是不是2或者4
int x = n;
while(true){
if(x % 10 == 2 || x % 10 == 4) return false;
//已经是个位数了 且不是2和4
if(x < 10) return true;
x = x / 10;
}
}
}