第十屆藍橋杯軟體類省賽 Java 大學 B 組 題目 第四題
阿新 • • 發佈:2020-11-28
D.數的分解
題目描述:
把 2019 分解成 3 個各不相同的正整數之和,並且要求每個正整數都不包 含數字 2 和 4,一共有多少種不同的分解方法? 注意交換 3 個整數的順序被視為同一種方法,例如 1000+1001+18 和 1001+1000+18 被視為同一種。
【答案提交】
這是一道結果填空的題,你只需要算出結果後提交即可。本題的結果為一 個整數,在提交答案時只填寫這個整數,填寫多餘的內容將無法得分。
- (1).第一想到的是三重迴圈,在每一重裡面都進行一個判斷(是否包含數字2和4),最後一重判斷相加是否等於2019;
- (2).題目中提到各不相同,排列組合公式共六種(ABC,ACB,BAC,BCA,CAB,CBA),同時交換順序視為一種,所以最後有也就剩ABC這一種排列方式,令j=i+1,k=j+1,可減少次數;
-
public class Main { public static boolean fenjie(int a) { while(a>0) { if(a%10==2||a%10==4) { return true; }a/=10; } return false; } public static void main(String[] args) { // TODO Auto-generated method stub