package com.itheima; /** * 第二题 :求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55 * @author wl-pc * 思路:斐波那契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在 * 数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2) * (n>=2,n∈N*)。 */ import java.util.*; public class Test2 { public static void main(String[] args) { fibonaxiePrint(); // 调用输出方法 } // 定义一个方法,按提示从控制台输入项数n的值,随后打印出斐波那契数列的值 public static void fibonaxiePrint() { // 从键盘上接收一个值 Scanner in = new Scanner(System.in); sop("输入项数:"); int n = in.nextInt(); if (n > 0) { sop("斐波那契数列第" + n + "项为:" + fibonaxie(n)); in.close(); } } // 定义一个函数用于获取斐波那契数列第n项,n<30 public static int fibonaxie(int n) { // 定义一个int类型的数列 int[] arr = new int[30]; // 令数列第一项和第二项都是1 arr[0] = arr[1] = 1; // 循环剩下的数列项数 for (int x = 2; x < 30; x++) { // 斐波那契数的计算公式 arr[x] = arr[x - 1] + arr[x - 2]; } return arr[n - 1]; } // 定义一个简化输出方法 public static void sop(Object obj) { System.out.print(obj); } } |