A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima;
/**
*1、求斐波那契数列第n项,n<30
*斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55
*@author陈建明
*/
/*
* 斐波那契数列的规律是从第三个数开始,后面的数是前面两个数的和
*/
//导键盘录入包
import java.util.Scanner;
class Test1
{
        public static void main(String[] args)
        {
                //键盘录入一个数
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入你想斐波那契数列第几项(<30):");
                int n = sc.nextInt();
                //打印出feiBo方法的返回值
                System.out.println("斐波那契数列第"+n+"项为:"+feiBo(n));
        }
        //定义求斐波那契数列第n项的方法
        public static int feiBo(int n)
        {
                //定义a,为第一个数;b为第二个数
                int a = 1 ,b = 1;// ,c = 2;
                //用循环来进行累加,a表示奇数位上的数,b表示偶数位上的数
                for (int i = 1; i < n/2 ; i++ )
                {
               
                        a = a + b;
                        b = a + b;
                }
                //判断输入的数是奇数还是偶数,如果是偶数就返回b
                if (n % 2 == 0)
                {
                        return b;
                }
                //如果是奇数,要把a少做的一次运算补上
                else
                {
                        a = a + b;
                        return a;
                }
        }
}

2 个回复

倒序浏览
  1. public class Test2 {
  2.     public static void main(String[] args) {//在主函数里调用方法,并传入项数n

  3.             founction(30);
  4.     }

  5.     public static void founction(int n){//定义一个方法,打印出斐波那契数列的值
  6.             for(int i=1;i<n;i++){
  7.                     System.out.println(fos(i));
  8.             }
  9.     }

  10.     public static int fos(int n){//创建一个方法,用于获取斐波那契数列第n项,n<30
  11.             if(n==1 || n==2){
  12.                     return 1;
  13.             }else {
  14.                     return fos(n-1)+fos(n-2);
  15.             }
  16.     }
  17. }
复制代码

回复 使用道具 举报
递归的思想
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马