PTA 7-6 聪明的高斯(简)
著名德国数学家高斯(Gauss)上小学时,老师让大家计算:
1+2+3+4+⋯+100= ?
当大家都还在埋头做加法时,高斯却最先算出了答案。你知道他是怎么算的吗?
请编写程序,输入正整数 n,计算 s=1+2+3+4+⋯+n,输出 s 的值。
输入格式
n
输出格式
s
输入样例
100
输出样例
5050
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
代码:
#include<stdio.h>
int main()
{
int n,s;//s:保存结果
scanf("%d",&n);
s=n*(n+1)/2;//利用等差求和公式快速计算
printf("%d",s);
return 0;
}
解题思路1(没有内存、运行时间限制)
- 根据题目获取到n值
- 将n值作为循环结束条件,每一次循环变量值加1
- 使用变量将每一次循环的数相加
解题思路2(本题)
- 根据题目要求获取到n值
- 利用等差求和公式(n*(n+1)/ 2)计算累加值