用递归方法求斐波那契数列的2,2,4,6,10,16,26,42,68,110······的第10项 用递归法计算斐波那契数列的第n项

www.zhiqu.org     时间: 2024-06-16
方法1:
#include "stdio.h"
int fbnq(int d1,int d2,int n)
{
int k;
if(n>3)
{
printf("%d,",d2);
return fbnq(d2,d1+d2,n-1);
}
else
{
printf("%d,",d2);
return d1+d2;
}
}

int main()
{
int d1,d2,n;
d1=2;d2=2;n=10;
/*printf("输入项数:");
scanf("%d",&n);printf("输入前两项:");
scanf("%d %d",&d1,&d2);*/
printf("%d,",d1);
printf("%d",fbnq(d1,d2,10));
}

方法2:
#include "stdio.h"
int fbnq(int d[],int n)
{
int k;
if(n>3)
{
printf("%d,",d[0]+d[1]);
d[1]=d[0]+d[1];d[0]=d[1]-d[0];
return fbnq(d,n-1);
}
else
return d[0]+d[1];
}
int main()
{
int d[2],n;
d[0]=2;d[1]=2;n=10;
/*printf("输入项数:");
scanf("%d",&n);printf("输入前两项:");
scanf("%d %d",&d[0],&d[1]);*/
printf("%d,%d,",d[0],d[1]);
printf("%d",fbnq(d,10));
}

#include "stdio.h"
int fib(unsigned int n);
int main()
{
int m=10;
int result =0;
result = fib(10);
printf("fib(%d)=%d",m,result);
return 0;
}
int fib(unsigned int n)
{
if(n==1||n==2)
return 1;
else
return fib(n-1)+fib(n-2);
}
没写注释,其实难理解的也就是return fib(n-1)+fib(n-2);这一句,还有就是,递归调用看起来高端,其实效率低下,函数的执行在栈里面越调用越耗内存,不信你求个fib(2000),我可不敢把这函数在电脑里跑。

用递归函数求斐波那契数列的第n项的值~

#include
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
",Fibonacci(n));
return 0;
}
在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。
扩展资料:
一个完全是自然数的数列,通项公式却是用无理数来表达的。而且当n趋向于无穷大时,前一项与后一项的比值越来越逼近黄金分割0.618(或者说后一项与前一项的比值小数部分越来越逼近0.618)。
从第二项开始,每个偶数项的平方都比前后两项之积少1,每个奇数项的平方都比前后两项之积多1。
如:第二项1的平方比它的前一项1和它的后一项2的积2少1,第三项2的平方比它的前一项1和它的后一项3的积3多1。
注:奇数项和偶数项是指项数的奇偶,而并不是指数列的数字本身的奇偶,比如从数列第二项1开始数,第4项5是奇数,但它是偶数项,如果认为5是奇数项,那就误解题意,怎么都说不通。
参考资料来源:百度百科--斐波那契数列

用递归方法计算斐波那契数列的第n项的代码如下:
#include
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
",Fibonacci(n));
return 0;
}

扩展资料一【非递归方式计算斐波那契数列第N项】#include
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";
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)


#夔径类# C语言,利用递归调用,编程输出斐波那契数列 ,这个怎么编啊,求指教啊 -
(13543472791): #include<stdio.h> long fun(int i)//递归函数 { if(i==1||i==2)//递归终止条件 return 1; else//递归通式 return(fun(i-1)+fun(i-2)); } int main() { int n; printf("请输入项数:"); scanf("%d",&n); printf("\n斐波那契数列前%d项为:\n",n); for(int i=1;i<=n;i++) { printf("%ld\t",fun(i));//调用函数 if(i%5==0)//每输出5项换行 printf("\n"); } return 0; }

#夔径类# 采用递归调用方式输出斐波那契数列中前十项的值.哪位高手快来帮帮忙啊,很急,谢谢啦! -
(13543472791): #include "stdio.h"int f[11];int Fib (int n);int main (){ int i; Fib (10); for (i = 0;i < 10;i ++) printf ("%d\n",f[i]); return 0;}int Fib (int n){ if (n == 0) return f[0] = 1; if (n == 1) return f[1] = 1; else return f[n] = Fib(n-1) + Fib(n-2);}不知道你要的是不是这样

#夔径类# java语言用递归输出Fibonacci数列:1 1 2 3 5 8 13 21前10个数的代码? -
(13543472791): public class Fibonacci { public static void main(String[] args) { //初始化变量 int n0 = 1, n1 = 1, n2; System.out.print(n0 + " " + n1 + " "); //引入for循环依次执行三个表达式,限定i的取值范围为<10 for (int i = 0; i < 10; i++) { //下一个数是早先的...

#夔径类# C语言编程:用函数递归法求Fibonacci数列的前n项· -
(13543472791): #include <stdio.h> long int F(int n) { if (n==1||!n) { return n; } else return F(n-1)+F(n-2); } int main(void) { int i,n; printf("n="); scanf("%d",&n); for (i=0; i<n; i++) { printf("%-10ld",F(i)); } return 0; } 在数理逻辑和计算机科学中 递归函数或μ-递归...

#夔径类# C语言编程:用函数递归法求Fibonacci数列的前n项·
(13543472791): #include #define COL 10 //一行输出10个 long scan() { //输入求fibonacci函数的第N项 int n; printf("Input the N = "); scanf("%d",&n); return n; } long fibonacci(int n) { //...

#夔径类# c++编程用递归方法编程求裴波那契数列中的第十个数
(13543472791): //规律:f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2)...(n>2) //循环算法(求前n个fibonacci数) #include #include void main() { int fab1=1,fab2=1,fabn,n,i; cout>n; cout #include int fibonacci(int); void main() { int n; cout>n; cout 全部

#夔径类# (用java编程写)递归计算Fibonacci数列的第5个值. -
(13543472791): 之前写过一个计算斐波那契数列前20项的,你可以借鉴一下 public class Demo4 { // 使用递归方法 private static int getFibo(int i) { if (i == 1 || i == 2) return 1; else return getFibo(i - 1) + getFibo(i - 2); } public static void main(String[] args) { System.out....

#夔径类# 用递归算法求斐波那契数列(1、1、2、3、5、8……)的第n个数的主要代码 - 作业帮
(13543472791):[答案] int fib(int n) { if(n==1||n==0) return 1; else return fib(n-1)+fib(n-2); }

#夔径类# C++编程,递归求菲波那契数列的前20项 -
(13543472791): "z=fun(n);cout<<z<<endl;"这段改成for(int i=1;i<=n;i++) { cout << fun(i) << endl; } 要用循环的...