哈哈,跟大家开个玩笑,现在咱们步入正题 求和法之一:等差数列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
重要!题目中已提示 不能用等差数列公式!!! 所以,用本期最后两个方法即可完美解决问题! 最后发上图:欢迎分享,转载请注明来源:内存溢出
评论列表(0条)