2016-08-22 6 views
-4

Я пробовал различные методы. Однако я не могу выяснить, можно ли печатать серии Fibonacci в java без использования рекурсии, цикла и пользовательских функций. Если да, то как?Можно ли печатать серии Fibonacci в java без использования рекурсии, петли и пользовательской функции

+1

конечно просто напечатать 'System.out.println ("1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89");' - Не то, что вы хотели это Это? –

+1

@Jameson Ссылка, которую вы опубликовали, имеет цикл. –

+1

@Jameson ссылка имеет пользовательскую функцию. – rancho

ответ

5

Вы можете использовать запланированный бассейн exector. Это не технически цикл, хотя он использует повторяющийся поток, чтобы вести себя как цикл.

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 :-) –

 Смежные вопросы

  • Нет связанных вопросов^_^