C++ · 求和篇

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

哈哈,跟大家开个玩笑,现在咱们步入正题

求和法之一:等差数列

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

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

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

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

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

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

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

#include <bits/stdc++.h>
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; //完美结束
}

运行结果:

coding

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

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

直接上代码。。。

#include <bits/stdc++.h>
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;
}

运行结果:
coding2

求和法之三:循环求和

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

啊这,你怎么不早说

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

实现代码:

#include <bits/stdc++.h>
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;
}

运行结果:
coding3
学习了这么多,来实践一下吧

洛谷练习题:P5722

重要!题目中已提示 不能用等差数列公式!!!

所以,用本期最后两个方法即可完美解决问题!

最后发上图:

img1

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值