700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java求第n项斐波那契_【剑指offer】数列——求斐波那契第n项

java求第n项斐波那契_【剑指offer】数列——求斐波那契第n项

时间:2021-03-29 08:33:02

相关推荐

java求第n项斐波那契_【剑指offer】数列——求斐波那契第n项

package cn.dzp.flyroc.offer;

import java.util.Scanner;

public class FieBoNaQieDemo {

/*題目描述:现在要求一输入一个整数n,请你输出斐波那契数列的第n项。n <= 39*/

/*例如:1、1、2、3、5、8、13、21就是一个斐波那契数列,前两项之和等于后一项*/

/*思路:递归的效率低,使用循环方式*/

//代码实现

public static long feibonaqie(int n){

long result = 0; //定义两数之和

long preOne = 0; //定义第一个元素

long preTwo = 1; //定义第二个元素

if (n == 0){ //如果 n = 0

return preTwo;

}

if (n == 1){ //如果n = 1

return preOne;

}

int i;

for (i = 2; i <= n; i++){ //从第三个元素开始遍历

result = preOne + preTwo; //两数之和

preOne = preTwo; //第一个元素变为前一次相加的第二个元素

preTwo = result; //将结果赋值给第二个元素

}

int j = i - 1;

System.out.println("这是菲波那切数列的第"+j+"项:"+result);

return result;

}

public static void checkInt(int n){

if (n >= 39 || n < 0){

throw new ArithmeticException();

}

}

public static void main(String[] args){

System.out.print("请输入一个小于39的数字n:");

try {

Scanner sc = new Scanner(System.in);

int m = sc.nextInt();

checkInt(m);

feibonaqie(m);

}catch (Exception e){

System.out.println("输入的数字超过最大限制:"+e.getMessage());

}

}

}

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