题目描述
计算 1+2+3+⋯+(n−1)+n 的值,其中正整数 n 不大于 100。由于你没有高斯聪明,所以你不被允许使用等差数列求和公式直接求出答案。
输入格式
输入一个正整数 n。
输出格式
输出一个正整数,表示最后求和的答案。
输入输出样例
输入 #1
100
输出 #1
5050
说明/提示
数据保证,1≤n≤100。
---------------------------------------------------------------------------------------------------------------------------------
谁不用等差数列求和公式谁傻子
由于你没有高斯聪明,所以你不被允许使用等差数列求和公式直接求出答案。
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
cout << (1 + n) * n / 2;
return 0;
}//AC了
如果你非要用循环的话
#include<iostream>
using namespace std;
int main(){
int ans = 0,n;
cin >> n;
for(int i = 0;i < n;i ++){
ans += i;
}
cout << ans;
return 0;
}
递归应该也行
#include<iostream>
using namespace std;
int n,a[101],s;
int sum(int x){
if(x == 0){
return 0;
}
return x + sum(x - 1);
}
int main(){
cin >> n;
cout << sum(n);
return 0;
}
打表?
#include<iostream>
using namespace std;
int sum[]={1,3,6,10,15,21,28,36,45,55,66,78,91,105,120,136,153,171,190,210,231,253,276,300,325,351,378,406,435,465,496,528,561,595,630,666,703,741,780,820,861,903,946,990,1035,1081,1128,1176,1225,1275,1326,1378,1431,1485,1540,1596,1653,1711,1770,1830,1891,1953,2016,2080,2145,2211,2278,2346,2415,2485,2556,2628,2701,2775,2850,2926,3003,3081,3160,3240,3321,3403,3486,3570,3655,3741,3828,3916,4005,4095,4186,4278,4371,4465,4560,4656,4753,4851,4950,5050};
int main(){
int i;
cin >> i;
cout << sum(i - 1);
return 0;
}