【Java】150盞燈開錯了5年(奧數題)

這裏寫圖片描述
就是這道題,之前看到的時候第一反應居然也是80這個答案,於是一怒之下,就爲蠢蠢噠自己寫了一個java程序模擬一下。

package test;

public class Lantern {
    int [] a = new int[150];

    public static void setArray(int a[]){
        for(int i = 0;i<150;i++){
            a[i] = 1;
        }
    }

    public static int countArray(int a[]){
        int countArray = 0;
        for(int i=0;i<a.length;i++){
            if((a[i]%2)==1)
                countArray++;
        }
        return countArray;
    }

    public static void setLanternMode(int a[],int multiples){
        for(int i = 0;i<150;i++){
            if((i%multiples)==0){
                a[i]++;
            }
        }
    }

    public static void main(String[] args) {
        int []a = new int[150];
        setArray(a);
        setLanternMode(a,3);
        setLanternMode(a,5);
        int count = countArray(a);
        System.out.println(count);
    }
}

至於結果確實是90,之前的邏輯錯誤就在於在關掉3的倍數50盞燈之後,應該是在關掉的燈裏面開啓10,並且同時在開啓的燈裏面關掉20盞,所以說對於主體的判斷翻了錯誤,導致行爲分辨不清楚。
尷尬,,ԾㅂԾ,,

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章