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 ...