求 1+2+3+……+N 的值。
输入: 输入 n。
输出: 输出和。
输入样例
5
输出样例
15
分析:
这道题让我们求从1加到n的和,一共有三种方法求和。
方法一:
暴力枚举,从1枚举到n,用一个变量代表和,将所有数的值都加进这个变量,最后输出。
代码如下 不准直接抄
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,ret=0;//ret就是存和的变量
cin>>n;
for(int i=1;i<=n;i++)
ret+=i;
cout<<ret;
}
简单不?
方法二:
直接进行递归操作。
代码如下 你直接抄试试
#include <bits/stdc++.h>
using namespace std;
int f(int x)
{
if(x==1) return x;//递归的结束条件,当x等于1时结束
return x+f(x-1);
}
int main()
{
int n;
cin>>n;
cout<<f(n);//f是递归函数
}
方法三:
我们先来看下样例,样例是5,那么我们就是求 1+2+3+4+5 的和,这其实是等差数列求和,
等差数列求和公式:
等差数列的和=(首数+尾数)*项数/2
首数是1,尾数是n,项数也是n。
那么就可以做了
代码如下 别直接抄,作者相信你会套公式
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
cout<<(1+n)*n/2;
}
(os:等差数列求和公式还挺好用)
验证方法:洛谷B2142 求 1+2+3+...+N 的值,三种都AC 。
希望对你有帮助!!
有问题的可以在评论区讨论。