Я пробовал различные методы. Однако я не могу выяснить, можно ли печатать серии Fibonacci в java без использования рекурсии, цикла и пользовательских функций. Если да, то как?Можно ли печатать серии Fibonacci в java без использования рекурсии, петли и пользовательской функции
-4
A
ответ
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 :-) –
конечно просто напечатать 'System.out.println ("1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89");' - Не то, что вы хотели это Это? –
@Jameson Ссылка, которую вы опубликовали, имеет цикл. –
@Jameson ссылка имеет пользовательскую функцию. – rancho