Description
给定 $n$,求
$$\sum\limits_{i=1}^n i$$
Solution 1
看到题面,呵,呵呵,直接输入一个 ll $n$ 然后输出 $\dfrac{n^2+n}{2}$ 不就完啦 ……
Code 1
class Solution {
public:
long long getSum(long long n) {
return (n * n + n) / 2;
}
};
Solution
重新审视题面
要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
但是我的代码用了乘除法,会被 D 的,所以要换一种方法。
假设 $s_i$ 为 $1$ 加到 $i$,那么我们可以得到一个递推公式
$$s_i=s_{i-1}+i$$
然后初始状态的 $s_1=1$。
最后没有用到题面不让用的东西,直接递推即可。
class Solution {
public:
long long getSum(long long n) {
if (n == 1) return 1;
return getSum(n - 1) + n;
}
};
记得要用 ll ~
不能用if
n==1 不是条件判断语句吗?
啊这 /fad