题目三:
问题描述
求1+2+3+…+n的值。
输入格式:输入包括一个整数n。
输出格式:输出一行,包括一个整数,表示1+2+3+…+n的值。
样例输入:4
样例输出:10
方法一:
这个是很容易想到的求数列和的方法,就是用 for 循环。但是这种运算在当求很大数数列和时会导致运行超时以及数值溢出的现象。
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int i, t=0, m=0;
scanf("%d",&m);
for(i = 1; i <= m; i++){
t += i;
}
printf("%d",t);
return 0;
}
方法二:
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int m=0;
int t=0;
scanf("%d",&m);
t = ((m+1)*m)/2; //数列求和公式嘛
printf("%d",t);
return 0;
}
最简单的方法就是;
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
long long m=0, t=0; //足够空间
scanf("%d",&m);
t = ((m+1)*m)/2;
printf("%lld",t);
return 0;
}
论——初始化的重要性
非常非常的重要!!!