n的值比较小的话可以用递归求和
int sum(int n)
{
if(n==1)
return 1;
else
return (sum(n-1)+n);
}
但如果n是1000000000这种就不行了,这时候要用公式,更简单而且更快
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n;
cin>>n;
cout<<n*(n+1)/2;//n+n*(n-1)/2
return 0;
}
这是高中数学的等差数列
公差为1,首项为1
等差数列求和公式为Sn=na1+n(n-1)d/2