剑指Offer系列基本结束了啦~~
感谢y总 打卡钱悉数返回
算是白嫖 haha 手动滑稽
【题目描述】
递归+ 前n项和公式
【思路】
根据前n项和公式,sum = (1 + n) *n / 2,涉及到乘除法,转除法为位运算,乘法为加法。
class Solution {
long ans = 0;
public void pow(int fact, int cnt, long _ans){
if( cnt == 0){
ans = _ans;
return;
}
pow(fact, cnt - 1, _ans + fact);
}
public int getSum(int n) {
pow((1 + n), n, 0);
return (int)(ans >> 1);
}
}
递归
递归前n项和直接求解
class Solution {
public int getSum(int n) {
if( n == 0) return 0;
return n + getSum(n - 1);
}
}