求dalao救救孩子
3. 累加
题目ID:20050必做题100分
时间限制: 1000ms
空间限制: 524288kB
题目描述
输入整数N,输出从1到N整数的累加和
输入格式
输入一个int类型整数N
输出格式
输出从1到N的整数的累加和
样例
Input 1
5
Output 1
15
Input 2
10
Output 2
55
数据范围
N是一个正整数
求dalao救救孩子
题目ID:20050必做题100分
时间限制: 1000ms
空间限制: 524288kB
输入整数N,输出从1到N整数的累加和
输入一个int类型整数N
输出从1到N的整数的累加和
5
15
10
55
N是一个正整数
这道题显然需要高斯求和公式 : 1 + 2 + … + n = (1 + n) * n / 2,所以只要输入n,输出上式即可
对于高斯求和公式推导如下:
设 S = 1 + 2 + … + n
则 1 + 2 + … + n
+ n + (n - 1) + … + 1 = (1 + n) * n,这个数显然为2S,故S = (1 + n) * n / 2
不对啊,还是0分
实在不行你for循环一下
for(int i = 1;i <= n;i ++){
__________;//填空
}
或者
cout << (1+n)*n/2;
如果数据范围大开个 long long
先定义两个数,一个用来记录高斯求和公式,一个用来存储
然后输出存储的数
核心代码
long long ans,cnt;
cin>>ans;
cnt=(1+n)*n/2;
cout<<cnt;
return 0;
你这代码不对啊, n
都没定义,应该为 ans
:
long long ans,cnt;
cin>>ans;
cnt=(1+ans)*ans/2;
cout<<cnt;
return 0;