蓝桥杯练习系统-入门训练 序列求和
题目
求1+2+3+…+n的值。
要求
- 资源限制
时间限制:1.0s 内存限制:256.0MB- 输入格式
输入包括一个整数n。- 输出格式
输出一行,包括一个整数,表示1+2+3+…+n的值。- 数据规模与约定
1 <= n <= 1,000,000,000。
样例
样例输入
4
样例输出
10
样例输入
100
样例输出
5050
解题思路
- 由于资源时间的限制性,使用无脑的
for
之类循环方法一定会超时。 - 在该题解法中我们能联想到循环的概念,又此题的值为
1+2+3+...+n
当我们输入n
时,该序列就拥有从n
到1
的收敛性,故使用另一种方法:递归,慢慢迭代总和得出结果;
答案
#include <stdio.h>
long long ge(long long a){
if(a>1){
return a + ge(a-1);
}
return a;
}
int main(){
unsigned long long sum;
scanf("%lld", &sum);
printf("%lld", ge(sum));
return 0;
}