栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++洛谷题解(38)——P5722

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++洛谷题解(38)——P5722

题目信息

题名:数列求和

题目:计算 1+2+3+⋯+(n−1)+n 的值,其中正整数 n 不大于 100。由于你没有高斯聪明,所以你不被允许使用等差数列求和公式直接求出答案。

输入格式:输入一个正整数 n。

输出格式:输出一个正整数,表示最后求和的答案。

输入样例:100

输出样例:5050

说明提示:数据保证,1≤n≤100。

分析题目

这道题我最熟悉,“作案手法”我也最熟。这道题被C++计算机水平考试四级当作程序编写题的第二题,当时我就“作弊”用的等差数列公式。因为做过,个人感觉这道题so so so,easy。但如果正规的不用公式就不一样了,这里还是说用公式的方法。

先来说一下等差数列公式,相信只要年龄≤10就知道这个公式,即(首项+末项)x项数÷2。让百度说一段:

等差数列是指从第二项起,每一项与它的前一项的差等于同一个常数的一种数列,常用A、P表示。这个常数叫做等差数列的公差,公差常用字母d表示。例如:1,3,5,7,9……2n-1。通项公式为:an=a1+(n-1)*d。首项a1=1,公差d=2。前n项和公式为:Sn=a1*n+[n*(n-1)*d]/2或Sn=[n*(a1+an)]/2。注意:以上n均属于正整数。

直接上思路吧(还用说思路吗?):

  1. 声明n
  2. 输入n
  3. 直接套公式
示例代码

注释版:

#include 
using namespace std;
int main()
{
    int n;                           //整数n,既是数列的末项,又是数列的项数
    cin >> n;                        //输入n的值
    cout << (1 + n) * n / 2 << endl; //不让用也用,反正又没有检测。这算不算卡Bug?
    system("pause");
    return 0; //直接结束
}

复制版:

#include 
using namespace std;
int main()
{
    int n;
    cin >> n;
    cout << (1 + n) * n / 2 << endl;
    system("pause");
    return 0;
}

以上除了题目外全部为废话

虽然光提交上面的代码也能通过,但如果在正规比赛可就不一定喽(话说正规比赛也不靠这个呀),所以我们还是要用其他方法做这道题的。

  1. 声明n和a并输入n
  2. 遍历1~n之间的所有数
  3.  a+=i,累加a
  4. 输出a

直接上代码

#include
using namespace std;
int main()
{
   int a=0,n;
   cin>>n;
   for(int i=1;i<=n;i++)
   {
    	a+=i;
   }
   cout<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012033.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号