2013-10-23 3 views
-5

나는 다음과 같은 요청을받은 :목록을 사용하지 않고 피보나치 시퀀스를 어떻게 생성합니까?

동안 루프를 사용하여, 정수의 피보나치 시퀀스를 생성하는 프로그램을 작성. 귀하의 프로그램은 피보나치 시퀀스 항목을 얼마나 많이 생성하여이 수량을 화면에 인쇄 할 것인지 사용자에게 물어야합니다.

어디서부터 시작해야할지 모르겠다. 누군가 올바른 방향으로 나를 가리킬 수 있습니까?

+4

내가 목록 피보나치 시퀀스를 생성 할 필요가 있음을 인식하지 않았다. 저는 항상 루프에서 두 개의 변수를 사용했습니다. – paddy

답변

2

은의이 문제의 약 생각해 봅시다 당신 :

+0

내가 가지고 있다고 생각하니? #fib 시퀀스 N = INT (입력 ("원하는 시퀀스의 수를 입력")) 난 = 0 제 = 0 초 = 1 다음 = 1 다른 = "없음" 나 N <없을 때 : i = i + 1 다음 = first + second first = second second = next print (next) – user2909219

0

을 위해 그것을 쓰고 싶지 않아 ... 마지막 값과 현재 값을 보유 할 변수를 사용하여 현재 값을 인쇄 한 후 마지막 값을 업데이트 조금 단지 답을주기 전에 :

피보나치 순서는 당신의 다음 수를 볼 수 있습니다 그래서

... 형태 0 1 1 2 3 5 8 13 21입니다의 합이다 이전 두 숫자 그래서 그 정의에 따라 이전 두 숫자를 저장하는 두 개의 변수와 t를 저장하는 변수가 필요하다는 것을 알 수 있습니다 루프를 종료해야하는시기 (사용자가받는 번호)를 알아야합니다.

누군가 이미 당신을 위해 게시 한 것처럼 보입니다 ... 신경 쓰지 마세요.

0

모든 피보나치 수는 이전 두 피보나치 수의 합계로 생성됩니다. 처음 두 피보나치 숫자는 01입니다. 정의로 위의 사용

, 이제 코드를 설계를 시작하자 :

function fibonnacci: 
    n := ask user how many numbers to output # hint: use raw_input() and int() 
    if n is 1: 
     output 0 
    else if n is 2: 
     output 0, 1 
    else: 
     output 0, 1 
     lastNumber := 1 
     twoNumbersAgo := 0 
     count up from 3 to n: 
      nextNumber := twoNumbersAgo + lastNumber 
      output nextNumber 
      twoNumbersAgo := lastNumber 
      lastNumber = nextNumber 
end function 
관련 문제