700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 一文解决斐波那契数列求前n项和;和求第n个数是多少的问题;斐波那契数列(Fibonacci

一文解决斐波那契数列求前n项和;和求第n个数是多少的问题;斐波那契数列(Fibonacci

时间:2022-01-05 01:38:48

相关推荐

一文解决斐波那契数列求前n项和;和求第n个数是多少的问题;斐波那契数列(Fibonacci

题目:斐波那契数列(Fibonacci)又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)= 0,F(1)= 1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*),请使用递归方式计算第 20 个数为多少 ?

一、核心代码如下:二、代码运行结果如下:

一、核心代码如下:

package homework10.homework1028;import java.util.Scanner;/*** 斐波那契数列(Fibonacci)又称黄金分割数列,* 指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……* 在数学上,斐波纳契数列以如下被以递归的方法定义:* F(0)= 0,F(1)= 1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*),* 请使用递归方式计算第 20 个数为多少 。*/public class Demo {public static void main(String[] args) {// 请使用递归方式计算第 20 个数为多少 。int f1 = f1(20);System.out.println("第一种方法得出的结果为:"+f1);int f2 = f2(20);System.out.println("第二种方法得出的结果为:"+f2);f3(20);/*** 斐波那契数列求和的方法如下:* 利用for循环*/Scanner scan = new Scanner(System.in);System.out.println("请输入n: ");int n = scan.nextInt();int sum = 0;for (int i = 1; i <= n; i++) {sum+=f1(i);//方法可根据实际情况灵活调用}System.out.println("斐波那契数列的前"+n+"项和为:"+sum);}/*** 方法一:* 用递归解决斐波那契数列的问题* 指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……* @param n* @return*/public static int f1(int n){if(n == 1){return 0;}if(n == 2 || n == 3){return 1;}return f1(n-1)+f1(n-2);}/*** 方法二:* 用递归解决斐波那契数列的问题* 指的是这样一个数列:1、1、2、3、5、8、13、21、34、……* @param n* @return*/public static int f2(int n){if(n == 1 || n == 2){return 1;}return f2(n-1)+f2(n-2);}/*** 方法三:用数组的方式解决斐波那契数列的问题* 指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……* 另外一种情况上面上面已有方法* @param n*/public static void f3(int n){//n>=2的条件下int[] array = new int[n];array[0] = 0;array[1] = 1;for (int i = 2; i < n; i++) {array[i] = array[i-1]+array[i-2];if(i == (n-1)){//输出第n项的数字System.out.println("第三种方法得出的结果为:"+array[i]);}}}}

二、代码运行结果如下:

一文解决斐波那契数列求前n项和;和求第n个数是多少的问题;斐波那契数列(Fibonacci)又称黄金分割数列 指的是这样一个数列:0 1 1 2 3 5 8 13 21 34 ……

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。