题目描述:
把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包
含数字 2 和 4,一共有多少种不同的分解方法?
注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和
1001+1000+18 被视为同一种。
解题思路:
> 由于是填空题,所以不需要考虑时间,直接暴力求解 > 由于三个数可以组成6中相同情况,根据排列组合 > 所以最终结果除以6
代码:
public class Main { public static void main(String[] args){ int count=0; for(int i=1;i<=2019;i++) { for(int j=1;j<=2019;j++) { for(int k=1;k<=2019;k++) { if(i+j+k==2019&&judge(i)&&judge(j)&&judge(k)&&i!=j&&j!=k&&i!=k) { count++; } } } } System.out.println(count/6); } public static boolean judge(int n) { while(n>0) { if(n%10==2||n%10==4) { return false; } n/=10; } return true; } }
答案:
40785