《劍指offer》------求1+2+3+···+n
阿新 • • 發佈:2018-05-01
public static case ID ret n-1 關鍵字 ase []
題目:
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。
1.采用&&解答:
/* 求1+2+3+...+n,要求不能使用乘除法、for、while、if、 else、switch、case等關鍵字及條件判斷語句(A?B:C)。 */ #include <iostream> using namespace std; int Sum_Solution(int n){ int sum = n; sum&&(sum+=Sum_Solution(n-1)); return sum; } int main() { cout<<Sum_Solution(2)<<endl; return 0; }
2.采用異常退出遞歸解決
public class 特殊求和 { public static int Sum_Solution(int n) { try{ int i = 1/n; //當n為0是返回0 return n + Sum_Solution(n-1); }catch(Exception e){ return 0; } } public static void main(String[] args) { System.out.println(Sum_Solution(100)); } }
結果:
5050
《劍指offer》------求1+2+3+···+n