2016-08-22 1 views
-4

나는 다양한 방법을 시도해 왔습니다. 그러나 재귀, 루프 및 사용자 지정 함수를 사용하지 않고 Java에서 피보나치 시리즈를 인쇄 할 수 있는지 여부를 확인할 수 없습니다. 그렇다면 어떻게?재귀, 루프 및 사용자 정의 함수를 사용하지 않고 Java에서 피보나치 시리즈를 인쇄 할 수 있습니까?

+1

물론'System.out.println ("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

이 솔루션은 'custom function'을 가지고 있습니다 : run() 메소드는 암시 적이지만 명백합니다. – EJP

+0

사실 ...하지만 기본적으로 하드 코드 된 println 솔루션을 남겨두고 있습니다. :-) –

관련 문제