zoukankan      html  css  js  c++  java
  • 计算数列:2/1+3/2+5/3+8/5+…的前10项的和

    题目:计算数列:2/1+3/2+5/3+8/5+…的前10项的和

    分析:乍一看,还以为是斐波拉契数列呢,然后就用递归方程把分子、分母分别求出来,然后相除求和即可。规律是这样,但这么做程序算法会溢出。所以不能利用递归循环来解此题。进一步分析会发现,后面每一项的分子是前一项的分子和分母的和,而每一项的分母是前一项的分子,所以抓住这个规律,直接用循环即可求出数列前N项的和。

    代码:

    #include "stdafx.h"
    #include <iostream>
    
    using namespace std;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        int a = 2, b = 1;//a为分子,b为分母
        float s = 0;//求和
        int n = 20;//前20项的和
        int t = 0;//临时变量
    
        for (int i = 0; i < n; i++)
        {
            s += (float)a / b;//累加项的和
    
            t = a;//将分子的值给临时变量
            a = a + b; //将分子+分母的和给新的分子
            b = t; //将临时变量的值给分母
        }
        cout<<s<<endl;//32.6603
        return 0;
    }
  • 相关阅读:
    elementUI form select验证问题
    Echart--基本属性
    Echart--饼状图
    Echart--折线图
    Echart--多个柱形图
    Echart--单个柱形图
    Echart--圆型图
    构析函数和构造函数
    心情
    图片
  • 原文地址:https://www.cnblogs.com/guwei4037/p/8110076.html
Copyright © 2011-2022 走看看