蓝桥杯--入门训练 序列求和

序列求和(题解)

求1+2+3+…+n的值。

输入格式:

输入包括一个整数n。

输出格式:

输出一行,包括一个整数,表示1+2+3+…+n的值。

输入样例:

1
4

输出样例:

1
10

输入样例:

1
10

输出样例:

1
5050

1 <= n <= 1,000,000,000。

注意:

1.使用暴力的方法往往会导致运行超时,

2.答案不在int范围内,应该用long long来存储.

我的代码如下:

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
int main()
{
long long sum=0;
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
sum+=i;
printf("%lld",sum);
return 0;
}

虽然可以AC,感觉暴力超时,可以用等差数列可以解决.

1
2
3
4
5
6
7
8
9
#include <stdio.h>
int main()
{
long long n,sum;
scanf("%lld",&n);
sum=n*(n+1)/2; //等差数列
printf("%lld",sum);
return 0;
}
小礼物走一个哟
0%