java面試記錄2019/9/21

前兩天去廣州千聊面試遇到了這樣一道編程題。

觀察生成規則0、5、5、10、15、25、40、65、105、165、270…。遞歸實現第50位數是多少?

太久沒有寫遞歸了當時沒寫出來。現在回想起來就是以前在學校寫過的數兔子問題嘛!

關於數兔子問題下面有一篇博客可以參考:

https://www.cnblogs.com/ngnntds03/p/10766646.html

好了下面是我後來回到家後對問題的編程實現上代碼:

package com.alibaba.digui;import java.util.concurrent.CountDownLatch;

/** 
* Created by IntelliJ IDEA.
* User: PeterLi * Date: 2019/9/21 
* Time: 0:29 
*/
public class Test1 {    
    private static int count = 3;    
    public static void main(String[] args) {        
        digui(0L,5L,48);    
    }    
    public static Long digui(Long num1,Long num2,int num50){     
        if(num50 == 0){           
            return num1 + num2;
        }        
        System.out.println((count++)+" " +(num1 + num2)+" ");
        return digui(num1,num2 + num2,num50-1); 
    }
}

以下是我參考了對遞歸算法的一些理解:

[外鏈圖片轉存失敗(img-A28vh5zb-1569042778424)(C:\Users\Administrator\Desktop\面試\20170615220708910.png)]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章