求 1+2+3+...+n的值 (C++)

求 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 。

希望对你有帮助!!

有问题的可以在评论区讨论。

posted @ 2023-05-21 22:41  zzr1208  阅读(1051)  评论(0)    收藏  举报  来源