Q&A

  • 답이 엄써서 다시 올립니닷^^;
procedure TWindow.ButtonOutputClick(Sender: TObject);

var

n : integer;

a : integer;

b : integer;

temp : integer;

begin

a := 0;

b := 1;

for n := 2 to StrToInt(Input.text) do

begin

temp := a + b;

a := b;

b := temp;

end;

Output.text := IntToStr(b);



end;





피보나치 수열 구하는 플그램인데염..

0일때는 0이여야 하는데 이렇게 하니깐 1이 나오더군요..

어떻게 하믄 제대로 된 답이 나올까요??

딴 답은 다 제대로 되는데....

2  COMMENTS
  • Profile
    jung hyun jin 2001.01.17 18:26
    해소슬 wrote:

    > procedure TWindow.ButtonOutputClick(Sender: TObject);

    > var

    > n : integer;

    > a : integer;

    > b : integer;

    > temp : integer;

    > begin

    > a := 0;

    > b := 1;

    > for n := 2 to StrToInt(Input.text) do

    > begin

    > temp := a + b;

    > a := b;

    > b := temp;

    > end;

    > Output.text := IntToStr(b);

    >

    > end;

    >

    >

    > 피보나치 수열 구하는 플그램인데염..

    > 0일때는 0이여야 하는데 이렇게 하니깐 1이 나오더군요..

    > 어떻게 하믄 제대로 된 답이 나올까요??

    > 딴 답은 다 제대로 되는데....



    a := -1

    b := 1 로 한번 해보세요



  • Profile
    MIDAS 2001.01.17 03:21
    피보 나열을 찾아보니 웬 수학적 용어만 잔뜩 써 있더군요.



    모르시는 분을 위한 참고 :

    피보나열 수치 사이트 http://my.dreamwiz.com/piruks/ 에서

    상단의 "토픽 수학사" 선택하면 중간에 "피보나열" 이라고 보임.





    피보나열은 원래 a=0 과 b=1 에서 부터 시작하는데

    b=0 부터 시작한다는 말씀인가요 ?



    그렇다면 다음과 같이 해 보세요.

    s = 새끼, e= 어미, t = 합계 입니다.







    procedure TForm1.BitBtn1Click(Sender: TObject);

    var

    s,e,t : integer ;

    // s = 새끼 , e = 어미, t = 합계

    begin

    s := 0 ;

    e := 0 ;

    t := 0 ;

    while e <= 1000 do

    begin

    showmessage(inttostr(s)+#13#10+

    inttostr(e)+#13#10+

    inttostr(t) ) ;

    s := e ;

    e := t ;

    if e = 0 then

    e := 1 ;



    t := s + e ;



    end ;

    end;





    해답이 되었나 모르겠군요. 덕분에 머리한번 굴려 보았습니다.



    수고요......











    해소슬 wrote:

    > procedure TWindow.ButtonOutputClick(Sender: TObject);

    > var

    > n : integer;

    > a : integer;

    > b : integer;

    > temp : integer;

    > begin

    > a := 0;

    > b := 1;

    > for n := 2 to StrToInt(Input.text) do

    > begin

    > temp := a + b;

    > a := b;

    > b := temp;

    > end;

    > Output.text := IntToStr(b);

    >

    > end;

    >

    >

    > 피보나치 수열 구하는 플그램인데염..

    > 0일때는 0이여야 하는데 이렇게 하니깐 1이 나오더군요..

    > 어떻게 하믄 제대로 된 답이 나올까요??

    > 딴 답은 다 제대로 되는데....