題目描述
求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 上面!