斐波那契数列:1.递归法

Posted yesiming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了斐波那契数列:1.递归法相关的知识,希望对你有一定的参考价值。

斐波那契数列:1.递归法

#include <stdio.h>
int fib(int m)

  if(m>=3)
  
    return fib(m-1)+fib(m-2);
  
  else
  
    return 1;
  

int main()

  int n;
  scanf("%d",&n);
  printf("%d",fib(n));
  return 0;

java用递归编程求斐波那契数列第n项

public class Fibonacci
public static void main(String args[])
int n,fn;//n为第n项,fn为第n项的值
java.util.Scanner s = new Scanner(System.in);
n=s.nextInt();
fn=function(n);
System.out.println("斐波那契数列第"+n+"项为:"+fn);


public static int function(int n)
if(n==1 || n==2) return 1;
return function(n-1)+function(n-2);



希望能帮到你,其实和c语言是一样一样的。。
参考技术A 套数学里的就是了 f(0) = 1, f(1) = 1, f(2) = 2, ...

int fib(int i)
if( i < 2 ) return 1; // 递归结束的条件

return f(i -1) + f(i-2);

参考技术B import java.io.*;
public class Zhidao1
public static void main(String[] args)
Zhidao1 z1=new Zhidao1();
int n;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入要求的数是第几个数:");
try
String str=br.readLine();
n=Integer.parseInt(str);
System.out.println("第"+n+"个斐波那契数是:\n"+z1.getFib(n));
catch (Exception e)
e.printStackTrace();


public long getFib(int n)

long fn;
if(n==1||n==2)
fn=1;
else
fn=getFib(n-1)+getFib(n-2);
return fn;

参考技术C 这样做,从内存上来说,深层次的递归容易造成栈溢出,我推荐这种

public static void main(String[] args)
int i=1;
int t=1;
for(int s=0;s<10;s++)
System.out.println(i);
if(s>0)
i += t;
t = i-t;


参考技术D  public class Test
  public static void main(String args[])
  int x1 = 1;
  int sum = 0;
  int n = 7;
  for (int i = 1; i <= n; i++)
  x1 = func(i);
  sum = sum + x1;
  
  System.out.println("sum=" + sum);
  
  public static int func(int x)
if (x > 2)
//返回前两个数的和
  return (func(x - 1) + func(x - 2));//返回前两个数的和
  else
  return 1;
  
  

以上是关于斐波那契数列:1.递归法的主要内容,如果未能解决你的问题,请参考以下文章

斐波那契数列:1.递归法

java用递归编程求斐波那契数列第n项

递归求斐波那契数列

08《算法入门教程》递归算法之斐波那契数列

用递归和非递归方法求解斐波那契数列

C语言用递推和递归两种算法完成斐波那契数列的计算,给一下代码