[劍指Offer]-求1+2+3+..n

題目描述

求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。

本題屬於思維題

解題思路

  • 書上寫了大一堆,我能簡單理解的還是一下這種設置static變量,利用他的特性,在多次創建對象時候實現一個累加。
算法圖解

在這裏插入圖片描述

參考代碼:
package offer;

/**
 * 求1+2+。。。n
 */

public class Offer64 {
    public static void main(String[] args) {
        Temp.ReSet();
        new Temp();
        new Temp();
        new Temp();
        new Temp();
        new Temp();
        System.out.printf(Temp.Get() + "");
    }
}
package offer;

public class Temp {
    private static int N = 0;
    private static int sum = 0;
    public Temp() {
        ++N;
        sum += N;
    }
    public static void ReSet() {
        N = 0;
        sum = 0;
    }
    public static int Get() {
        return sum;
    }

}

附錄

該題源碼在我的 ?Github 上面!

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