zoukankan      html  css  js  c++  java
  • 斐波那契数列(关于递归)

    package com.demo.sw.test;
    
    import java.util.Scanner;
    
    /**
     * 斐波那契数列 1 1 2 3 5 8 13 21 ...
     * @author Mr.J
     *
     */
    public class Fibonacii {
    	
    	public static void main(String[] args) {
    		Scanner input = new Scanner(System.in);
    		System.out.print("请输入数列中你想要的位数:");
    		int in = input.nextInt();
    		System.out.print("结果是:");
    		System.out.println(fibonacii2(in));
    		System.out.println("斐波那契的数组是:");
    		long [] arr = fibonaciiArr(in);
    		prt(arr);
    		
    	}
    	
    
    	/**
    	 * 斐波那契数列第 n 位的值
    	 * @param n
    	 * @return
    	 */
    	public static long fibonacii1(int n){
    		if(n==1 || n==2){
    			return 1;
    		}
    		return fibonacii1(n-1) + fibonacii1(n-2);
    	}
    	
    	public static long fibonacii2(int n){
    		int a=1, b=1;
    		int temp;
    		if(n==1 || n==2){
    			return 1;
    		}
    		for (int i = 0; i < n-2; i++) {
    			temp = a;
    			a = b;
    			b = a+temp;
    		}
    		return b;
    		
    	}
    	
    	
    	/**
    	 * 斐波那契额的数列
    	 * @param n
    	 * @return
    	 */
    	public static long[] fibonaciiArr(int n){
    		long [] rtArr = new long[n];
    		
    		for (int i = 0; i < rtArr.length; i++) {
    			rtArr[i] = fibonacii1(i+1);
    		}
    		return rtArr;
    	}
    	
    	/**
    	 * 打印数组
    	 * @param arr
    	 */
    	public static void prt(long[] arr){
    		String str = "";
    		for (int i = 0; i < arr.length; i++) {
    			str += arr[i] + " ";
    		}
    		
    		System.out.println(str);
    	}
    }
  • 相关阅读:
    - 错误笔记
    只是一个没有人知道的蒟蒻
    省选前模板复习
    数学知识小结#1
    写在NOIP2018后
    Atcoder&CodeForces杂题11.7
    Atcoder&CodeForces杂题11.6
    [NOIP11.1模拟赛]补番报告
    [JZOJ5281]钦点题解--瞎搞+链表
    [JZOJ5280]膜法师题解--思维+前缀和
  • 原文地址:https://www.cnblogs.com/icenter/p/1988817.html
Copyright © 2011-2022 走看看