1175 Problem X 《C语言程序设计》江宝钏主编-习题6-8-斐波那契部分和

问题描述

编写升序输出m和n之间所有的Fibonacci数。要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。
例如,fib(7)返回13
Fibonacci={1,1,2,3,5,8,13,…}
an=an-1+an-2

输入

两个数m和n

输出

所有属于闭区间[m,n]即大于等于m,小于等于n的斐波那契数的和

样例输入

2 5

样例输出

10

AC代码

#include <iostream>
#include <stdio.h>

using namespace std;



int fib(int n){

    int count_1 = 0;
    int count_2 = 1;
    int sum = 0;
    if(n == 1)
    {
        cout << 1 <<endl;;
        return 1;
    }
    for(int i = 0; i < n -1; i++)
    {
        sum = count_1 + count_2;
        count_1 = count_2;
        count_2 = sum;
    }
    return sum;

}


int main()
{
    int m,n;
    cin >> m >> n;
    int i = 1;
    int sum = 0;
    while(fib(i) <= n)
    {
        if(fib(i) >= m && fib(i) <= n)
        {
            sum += fib(i);
        }
        i++;
    }
    cout << sum << endl;
    return 0;
}

发布了119 篇原创文章 · 获赞 28 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_41179709/article/details/103971381