`
jiqimiao
  • 浏览: 62810 次
  • 性别: Icon_minigender_1
  • 来自: 常州
社区版块
存档分类
最新评论

java中用递归方法求第n个Fibonacci数

 
阅读更多

用递归方法求第n个Fibonacci数。

源程序:

import java.io.*;

class Fibonacci

{

public long Fibonacci(int n) //用来计算n个Fibonacci的方法

{

if(n==1)

return 1;

else if(n==2)

return 1;

else

return Fibonacci(n-1)+Fibonacci(n-2);

}

public static void main(String[] args)throws IOException

{

int n;

System.out.println("请输入整数n,以便求得Fibonacci(n):");

Fibo k=new Fibo();

byte[] b = new byte[6]; //6个字节的数组用于存放字符串,b为局部变量

System.in.read(b); //从键盘读入一个数字串保存于b中

String str = new String(b).trim(); //b转换成String对象str并压缩

n = Integer.parseInt(str); //数字串转换成整数n

System.out.println("求得Fibonacci("+n+")为:");

System.out.println(k.Fibonacci(n));

}

}

运行结果:(输入正整数)

请输入整数n,以便求得Fibonacci(n):

10

求得Fibonacci(10)为:

55

分享到:
评论

相关推荐

    算法-斐波那契数列(信息学奥赛一本通-T1159)(包含源程序).rar

    在信息学奥赛中,斐波那契数列的常见问题是求第n项的值或者计算前n项的和。解这类问题通常有以下几种方法: 1. **直接递归**:最直观的方法是通过递归函数来实现,但这种方法效率极低,因为它会重复计算很多相同的...

    java基础知识

    接下来,属性表(Properties)是Java中用于存储键值对的数据结构,常用于配置文件。`java.util.Properties`类提供了加载、保存和操作属性的方法。例如,我们可以从`.properties`文件加载配置,然后在程序中动态地...

    Java基础习题.pdf

    3. for 循环是一种常见的编程结构,在Java中用于重复执行一段代码直到满足某个条件。 4. while 是另一种循环控制结构,它可以不断地执行一个语句或代码块,直到给定条件不再成立为止。 5. '\n' 表示换行符,用于在...

    JAVA编程题

    这里的关键是理解每个月的兔子数量是如何计算的:第n个月的兔子数量等于第n-1个月的兔子数量加上第n-2个月的兔子数量。 **扩展知识:** - **递归实现**:除了使用循环,还可以使用递归来实现菲波那契数列的计算,...

    Java数据结构和算法第二版.rar

    3. 栈与队列:栈是一种后进先出(LIFO)的数据结构,Java中用Stack类来实现。队列则是先进先出(FIFO)的数据结构,可以使用LinkedList或Queue接口的实现类,如ArrayDeque。 4. 树结构:包括二叉树(Binary Tree)...

    算法导论(part1)

    ·快速排序(第7.1节)中用到的划分方法与期望线性时间顺序统计算法(expected linear-time order-statistic algorithm,第9.2节)有所变化。现在,我们采用了Lomuto提出的方法,并将该方法与指示器随机变量一起使用,...

    Java数据结构和算法中文版

    1. **数组**:作为最基础的数据结构,数组在Java中用于存储同一类型的数据集合。了解数组的声明、初始化、访问和操作方法是学习数据结构的基础。 2. **链表**:链表不同于数组,它的元素在内存中不是连续存放的。...

    竞争性编程问题。_Java_下载.zip

    5. **递归与回溯**:递归是解决问题的一种强大工具,常用于解决如阶乘计算、斐波那契数列等问题;回溯则常用于解决排列组合问题,如八皇后问题。 6. **字符串处理**:Java中的`String`类提供了丰富的API,用于处理...

    算法导论(part2)

    ·快速排序(第7.1节)中用到的划分方法与期望线性时间顺序统计算法(expected linear-time order-statistic algorithm,第9.2节)有所变化。现在,我们采用了Lomuto提出的方法,并将该方法与指示器随机变量一起使用,...

    算法

    Java中用二维数组存储子问题状态,递推求解。 除了基础算法,Java还支持高级算法,如堆排序、堆数据结构(Java中的PriorityQueue)、哈希表(HashMap和HashSet)用于快速查找,以及Trie树(字典树)进行字符串相关...

    编码部队

    3. **异常处理**:Java中用try-catch-finally语句处理运行时错误,保证程序的健壮性。 4. **集合框架**:ArrayList、LinkedList、HashSet、HashMap等,这些都是在解决问题时常用的数据存储和操作工具。 5. **输入...

    Leetcode:我所有的leetcode解决方案

    Java 中的递归和栈常常用来实现回溯。 8. **动态规划**:通过构建状态转移方程解决最优化问题,如斐波那契数列、背包问题。Java 中用二维数组或列表来存储状态。 9. **排序与搜索**:包括快速排序、归并排序、二分...

Global site tag (gtag.js) - Google Analytics