C++ · 求和篇

C++ · 求和篇,第1张

C++求和法千万条,等差数列第一条

哈哈,跟大家开个玩笑,现在咱们步入正题 求和法之一:等差数列

没错,等差数列是最简便的解法

众所周知,等差数列求和公式为 (首项 + 末项) × 项数 ÷ 2

(首项即是等差数列的起始数,末项是等差数列的结束项)

好,问题来了,项数怎么求呢?

不会的同学请自行翻看四年级上册的数学课本

咳咳,直接公布答案吧,项数 = (末项 - 首项) ÷ 公差 + 1

那么,我们设n为数列末项,公差为1,变量cnt代表项数,sum表示数列总和,代码如下:

#include 
using namespace std;

int main ()
{
	int n,cnt,sum; //设n为数列末项,公差为1,变量cnt代表项数,sum表示数列总和
	cin>>n;
	cnt=(n-1)/1+1; //求项数
	sum=((1+n)*cnt)/2; //求和
	cout<<sum; //输出
    return 0; //完美结束
}

运行结果:

求和法之二:变量累加求和

思路:设一个变量k,循环控制k累加,然后总和跟着加

直接上代码。。。

#include 
using namespace std;

int main ()
{
	int n,k,sum; //n为加到的数,k是累加变量,sum是总和
	cin>>n; //输入
	for(int i=1;i<=n;i++) //循环执行n次
	{
		k=i; //让k随着i累加
		sum=sum+k; //sum加当前和
	}
	cout<<sum; //输出
    return 0;
}

运行结果:

求和法之三:循环求和

看完上面的代码,有同学就要说了:余同学,你这方法不简便啊,你直接让sum随着i累加不就行了吗?

啊这,你怎么不早说

抱歉各位,我实在是没想到这个方法

实现代码:

#include 
using namespace std;

int main ()
{
	int n,sum;
	cin>>n; //输入
	for(int i=1;i<=n;i++)
	{
		sum=sum+i; //让sum随着i累加
	}
	cout<<sum; //输出
    return 0;
}

运行结果:

学习了这么多,来实践一下吧

洛谷练习题:P5722

重要!题目中已提示 不能用等差数列公式!!! 所以,用本期最后两个方法即可完美解决问题! 最后发上图:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/867843.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-12
下一篇 2022-05-12

发表评论

登录后才能评论

评论列表(0条)

保存