用递归法计算斐波那契数列的第n项
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用递归法计算斐波那契数列的第n项相关的知识,希望对你有一定的参考价值。
用递归方法计算斐波那契数列的第n项的代码如下:
#include <stdio.h>
int Fibonacci(int n)
if( n == 1 || n == 2) // 递归结束的条件,求前两项
return 1;
else
return Fibonacci(n-1)+Fibonacci(n-2); // 如果是求其它项,先要求出它前面两项,然后做和。
int main()
int n;
printf("please input n: ");
scanf("%d",&n);
printf("Result: %d\\n",Fibonacci(n));
return 0;
扩展资料一【非递归方式计算斐波那契数列第N项】
#include<iostream>
using namespace std;
int Fib(int n)
if(n==1 || n==2)
return 1;
int fib1=1;
int fib2=1;
int fib;
for(int i=3; i<=n; ++i)
fib = fib1 + fib2;
fib2 = fib1;
fib1 = fib;
return fib;
void main()
int n;
cout<<"input n:>";
cin>>n;
cout<<Fib(n)<<endl;
扩展资料二【斐波那契数列的起源】
由于斐波纳挈数列是以兔子的繁殖引入的数学问题,因此也叫“兔子数列”,指的是这样一个数列:0,1,1,2,3,5,8,13...... 从这组数可以很明显看出这样一个规律:从第三个数开始,后边一个数一定是在其之前两个数的和。
在数学上,斐波纳挈数列可以以这样的公式表示:F(0) = 0,F(1) = 1 ,F(n) = F(n-1) + F(n-2),(n>=2)
参考技术A #include <stdio.h>int Fibonacci(int n)
if( n == 1 || n == 2) // 递归结束的条件,求前两项
return 1;
else
return Fibonacci(n-1)+Fibonacci(n-2); // 如果是求其它项,先要求出它前面两项,然后做和。
int main()
int n;
printf("please input n: ");
scanf("%d",&n);
printf("Result: %d\n",Fibonacci(n));
return 0;
本回答被提问者采纳
斐波那契数列
题目要求
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:
F(0) = 0, F(1) = 1
F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。
算法分析
用循环或递归实现均可,当前数为前两项之和,注意不同题目初始值可能不同。
代码
class Solution(object):
def fib(self, n):
x = 0
y = 1
temp = 0
if n == 0 or n == 1:
return n
for i in range(2, n + 1):
temp = x + y
x = y
y = temp
return temp % 1000000007
以上是关于用递归法计算斐波那契数列的第n项的主要内容,如果未能解决你的问题,请参考以下文章