特殊方式求求1 2 3 n

2021-08-07 06:51:21 字數 702 閱讀 5093

1. 題目要求

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

2. **

/*

用公式是不可以的,公式裡有乘法!!實現乘法可以用sizeof多維陣列,兩行**就可以

class solution

};*/

typedef int (*func)( int );

class solution

static

int sum_solution(int n) ;

return n+f[!!n](n-1);

// 當且僅當n為0時,呼叫solution1,函式返回

}  };

/*

解題思路:

1.需利用邏輯與的短路特性實現遞迴終止。 2.當n==0時,(n>0)&&((sum+=sum_solution(n-1))>0)只執行前面的判斷,為false,然後直接返回0;

3.當n>0時,執行sum+=sum_solution(n-1),實現遞迴計算sum_solution(n)。

*/public

int sum_solution(int n)

刷演算法 求1 2 3 n

求1 2 3 n,要求不能使用乘除法 for while if else switch case等關鍵字及條件判斷語句 a?b c 題目要求不能使用乘除法 for while if else switch case等關鍵字及條件判斷語句,那麼首先就要思考怎麼才能使n一次次的相加且到0的時候結束。首先...

用Java求出1! 2 3 n 的結果

一 題目 求出1!2 3 n 1 1!2 3 n 1!2 3 n 1 1!2 3 n 1 1 n 1!2 3 n 2 1 n 1 1 n 1!2 3 n 3 1 n 2 1 n 1 1 n 有以上的規律可知,用迴圈實現 public class sum n return result 2 由於整型的...

演算法練習篇之 求1 2 3 n

求1 2 3 n,要求不能使用乘除法 for while if else switch case等關鍵字及條件判斷語句 a?b c 累加不能用迴圈的話,那就試試遞迴吧。判斷遞迴的終止條件不能用 if 和 switch,那就用短路與代替。n 0 sum sum solution n 1 0只有滿足n ...