2016-08-22 3 views
-4

私は様々な方法を試しています。しかし、再帰関数、ループ関数、カスタム関数を使わずに、JavaでFibonacciシリーズを印刷できるかどうかはわかりません。はいの場合はどうですか?再帰、ループ、カスタム関数を使わずにJavaでFibonacciシリーズを印刷することは可能ですか

+1

もちろん 'System.out.println(" 1,1,1,2,3,5,8,13,21,34,55,89 ");' - あなたが望むものではありませんそれ? –

+1

@Jameson投稿したリンクにはループがあります。 –

+1

@Jamesonリンクにはカスタム機能があります。 – rancho

答えて

5

スケジュールされたエクストラプールを使用できます。これは技術的にはループではありませんが、反復スレッドをループのように使用しています。

private static volatile int currentNum = 1; 
private static volatile int previousNum = 0; 

public static void main(String[] args) { 
    ScheduledThreadPoolExecutor timer = new ScheduledThreadPoolExecutor(1); 
    timer.scheduleWithFixedDelay(() -> { 
     System.out.println(currentNum); 
     int temp = currentNum; 
     currentNum += previousNum; 
     if (currentNum < 0) { 
      // overflow 
      timer.shutdown(); 
     } 
     previousNum = temp; 
    }, 0, 1, TimeUnit.MILLISECONDS); 
} 
+1

この解決策は 'カスタム関数'を持っています: 'run()'メソッドですが、暗黙的です。 – EJP

+0

真...しかし、それは基本的にハードコード化されたprintlnソリューションを残します:-) –

関連する問題