1.如果用循环累加,n很大时,会超时,所以用了等差数列前n项和公式
2.答案的大小不在默认的整型(int)范围内,如果使用整型来保存结果,会导致结果错误
注:(1).long long 的级别高于 long ,long的级别高于 int ,int 的级别高于 short ,short 的级别高于 char 。(另外有 _Bool 永远是最低级别)。级别高的整数类型的宽度大于等于级别较低的整数类型。
(2).编译long long需要支持C99标准的编译器才行,VC并不支持,但有对应的类型__int64
(C语言long long用法:https://blog.csdn.net/junecau/article/details/6766033)
(3).%l64d 和%lld 的区别:https://blog.csdn.net/thunders01/article/details/38879553
新手入门,在博客里总结了思路和个人认为易错的地方,另附一些所查资料的链接,后面难题很多,大家加油!!!
问题描述
求1+2+3+...+n的值。
输入格式
输入包括一个整数n。
输出格式
输出一行,包括一个整数,表示1+2+3+...+n的值。
样例输入
4
样例输出
10
样例输入
100
样例输出
5050
数据规模与约定
1 <= n <= 1,000,000,000
#include <stdio.h>
int main()
{
long long n,sum;
scanf("%lld", &n);
sum=n*(n+1)/2;
printf("%lld", sum);
return 0;
}