피보나치 수열을 abap로직으로 구성할려고 하는데 어떻게 작성해야 하는지
흐름과 구조를 알려주시면 좋겠습니다. 기본 프로그램 종류와 구조알면 짤 수 있을것 같은데
전혀 짜본 적이 없으니 답답하네요. 시원하게 알려주세요.
댓글 3
-
Storyguy™
2008.10.10 23:01
-
기본도없는초보
2008.10.14 01:27
가장 간단히 생각나는대로 짜보았습니다. 결과값은 제대로 나오네요 몇번을 돌리실지는 두 타임즈에 숫자만 넣어주시면 될거에요
DATA : a TYPE i.
DATA : b TYPE i.
DATA : c TYPE i.
a = 0.
b = 1.
DO 9 TIMES.
c = a + b.
WRITE:/ c.
CLEAR: a.
a = b.
CLEAR: b.
b = c.
ENDDO.
결과값입니다.
1 2 3 5 8 13 21 34 55 -
착한악마
2008.12.09 18:31
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 243..................
이 수열을 잘 살펴보면 다음에 나올 항은 앞의 두 항의 합과 같습니다.
일반항으로 표현하면
an = a(n-1) + a(n-2) 인 수열입니다.
피보나치 수열은 항이 뒤로 갈수록 두 항의 비율 즉 a(n-1)/an 이 황금비에 가까워지기 때문에 유명합니다.
자연계에서 이 피보나치 수열을 표현하는 것들이 상당히 많이 있습니다.
태풍의 모습을 인공위성에 찍은 사진을 봤을 때, 달팽이의 모양, 해바라기 씨의 모양, 식물의 잎이 나오는 순서 등...
예를 하나들면 토끼 1쌍이 매달 1쌍의 토끼를 낳고 그 애기토끼도 다음달부터 1쌍의 토끼를 낳는 식으로 했을 때 처음 1쌍의 토끼가 1년후에는 몇마리가 될것인가?
피보나치 수열 : 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 … 으로 앞의 두개의 숫자와 더하여 다음 숫자를 만드는 배열 이니까...
간단히 변수 3개만 선언하고 더하기로 하시면 될텐데요...
근데 수열의 범위를 처음 설정하셔야 겠지요...