- package com.itheima;
- import java.util.Scanner;
- public class Test2 {
- /**
- * 求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55
- * */
- public static void main(String args[]){
-
- //从控制台输入整数代表第n项
- Scanner input=new Scanner(System.in);
- System.out.println("请输入您希望输出斐波那契数列第几项");
- int n=input.nextInt();
-
- //用an来代表斐波那契数列第n项的值
- int an=0;
- if(n==1){
- an=1;
- System.out.println("斐波那契数列第1项是:"+an);
- }else if(n==2){
- an=1;
- System.out.println("斐波那契数列第2项是:"+an);
- }else if(n>=30){
- System.out.println("请输入小于30的正整数");
- }else {
- //用递推公式an=an-1+an-2求得斐波那契数列an
- int i=0;
- int ax=1, ay=1;
- for(i=3;i<=n;i++){
- //用ax代表第an-1项 用ay代表an-2项
- an=ax+ay;
- //令ay=an-1,ax=an完成数列的递推
- ay=ax;
- ax=an;
- }
- System.out.println("斐波那契数列第"+ (i-1) +"项是:"+an);
- }
-
- }
-
- }
复制代码 |