【每天学点算法题10.16】斐波那契数列问题
来源:互联网 发布:淘宝能抢到前500名吗 编辑:程序博客网 时间:2024/05/22 16:50
问题描述:斐波那契数列是指这样一组数列,1,1,2,3,5,8,13,21.....大家可以看出来规律是,第n个数的数值是它的前面两位数的和。在数学上,斐波那契数列可以这样表示:F(0)=0,F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2)。求斐波那契数列第n项数值和前n项的和。
解决办法一:动态规划思想,采用递推的方法。示例代码如下:
import java.util.Scanner;/** @author dyoyo90 */public class Fabonacci{public static void main(String[] args){Scanner scanner=new Scanner(System.in);System.out.print("Please insert the value of n: ");int n=scanner.nextInt();System.out.println(getFabonacci(n));int sum=0;for(int i=1;i<=n;i++){sum+=getFabonacci(i);}System.out.println(sum);}public static int getFabonacci(int n){if(n<=2)return 1;int n1=1,n2=1,sum=0;for(int i=0;i<n-2;i++){sum=n1+n2;n1=n2;n2=sum;}return sum;}}
解决办法二:采用递归的方法,直接函数f(n)=f(n-1)+f(n-2)。示例代码如下:
import java.util.Scanner;/** @author dyoyo90 */public class Fabonacci{public static void main(String[] args){Scanner scanner=new Scanner(System.in);System.out.print("Please insert the value of n: ");int n=scanner.nextInt();System.out.println(getFabonacci(n));int sum=0;for(int i=1;i<=n;i++){sum+=getFabonacci(i);}System.out.println(sum);}public static int getFabonacci(int n){if(n<=2){return 1;}else{return getFabonacci(n-1)+getFabonacci(n-2);}}}
- 【每天学点算法题10.16】斐波那契数列问题
- 每天一道算法--经典兔子繁殖迭代问题(斐波那契数列)
- 【每天学点算法题10.16】约瑟夫环问题
- 校招准备系列:每天一道算法题(13)-斐波那契数列
- 每天一道算法题——斐波那契数列
- 剑指offer-算法题练习:part7 斐波那契数列-斐波那契数列问题
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- Centos 中使用 FTP 命令时出现“-bash: ftp: command not found”
- 构造函数初始化
- 项目结尾公共模块WebService封装
- Mysql导入数据库
- 单例模式使用 Quartz.Net执行定时任务
- 【每天学点算法题10.16】斐波那契数列问题
- 递归计算指定文件夹以及子文件夹大小 - 只记录大于10M的文件夹
- 设计模式——单件模式
- 黑马程序员 ---继承 抽象 接口
- Java基础实验1-猜数字
- 十六进制颜色码
- (问题记录--已解决)Not binding factory to JNDI, no JNDI name configured
- 黑马程序员---枚举类型的使用及其类型转换(学习总结)
- 如何用SqlBulkCopy完成未知列数和列名的数据表的采集