问题标题: 斐波那契数列求和

0
0
已解决
谈文瑞
谈文瑞
新手光能
新手光能

Fibonacci数列的规律是:第一个数为1,第二个数为2,从第三个数开始每个数等于它前面两个相邻数之和,即:1、2、3、5、8、13、21、34、55、89、144、233、377……。

输入N的值,输出裴波那契数列的前N项数总和。

输入:2    输出:3

输入:3    输出:6

输入:7    输出:53


0
已采纳
舒航
舒航
新手守护
新手守护

这个太简单的递归!!!

#include<iostream>
using namespace std;
定义 f(int n)
{
    如果(n<=2)
    返回 1;
    返回 f(n-1)+f(n-2);
}
int main()
{
    定义 n;
    输入>>n;
    输出<<f(n);
    return 0;
}
舒航在2018-07-31 12:01:45追加了内容

没注意是求和定义一个变量存一下就行了,记得采纳

舒航在2018-08-02 08:55:28追加了内容

楼上问问题人看过来!

int f(int n)
{
    如果(n<=2)
    返回 n;
    返回 f(n-1)+f(n-2);
}

sorry,之前写错了,

把return 1;改成 return n;就行了

 

采纳采纳采纳,重要事情讲三遍!!!

0
0
孙志浩
孙志浩
资深守护
资深守护

用递推,f[1]=1,f[2]=1,f[n]=f[n-1]+f[n-2],s[0]=0,s[n]=s[n-1]+f[n],递推时间比递归低,因为求f(n)时,f(n-1)和f(n-2)已经算过了,递归要从头算起,递推可以直接调用。注意,数据大时用高精度。

0
0
蒋智航
蒋智航
高级天翼
高级天翼

你在考试吗,怎么不发题号?

0
0
刘陶哲
刘陶哲
修练者
修练者

先用递归求出每一项的数字,然后设一个从1到n的for循环求和

0
张舒斌
张舒斌
中级光能
中级光能

递归求斐波那契数列。

int fei(int n)
{
    if(n==1||n==2)
    {
        return 1;
    }
    return fei(n-1)+fei(n-2);
}

主函数里循环传值i给函数里的形参n,再用累和变量进行累加,最后输出累和变量。

望采纳

我要回答