본문 바로가기

Python/Practice

Q. 1과 1부터 시작하는 피보나치수열의 10번째 수는 무엇인지 계산하는 프로그램

방법01.

left = 1
right = 1
result = 0  # left+right로 할수도있겠지만!
x = 1       # 반복할 횟수를 위한 변수

while x <= 8:       # 1바퀴 돌면 3번째 수가 나오니까, 8번 돌면 10번째 수가 나오겠지?
    result = left + right
    left = right
    right = result

    x = x + 1

print(result)

--> 이거말고 다른 방법은 없나....? 좀 더 고민해보기

 

 

연습 01.

# 1+1=2, 1+2=3, 2+3=5, 3+5=8.....
# L1+R1=S1, R1+S1=new....


# 연습01
print("-----------연습01------------")


left = 1
right = 1
how = 1

sum = 0

while how <= 3:         # sum을 right=sum뒤에 쓰게되면
    left = right        # 1 = 1
    right = sum         # 1 = 0
    sum = right + left  # 1 이렇게된다

    how = how + 1

print(sum)

 

 

연습02.

print("-----------연습02------------")

left = 1
right = 1

sum = 0
how = 1

while how <= 8:
    sum = left + right
    left = right
    right = sum

    how = how + 1

print(sum)

 

 

연습03. left+right를 바깥에 쓸 수는 없나?

left = 1
right = 1

# sum = 0 이거 없어도 출력됨. 뭘로정의하든 밑에서 재정의하니까 의미없어지는 변수!!!!!

how = 1

while how <= 8:
    sum = left + right
    left = right
    right = sum             # 이렇게만끝내면 sum은 계속 2니까 반복한다고해서 달라질게없겠구나
    print(left)
    print(right)
    print(sum)
    print()

                                
    how = how + 1

                            # 그니까 while안쪽에 넣어서 같이 반복하게 해줘야지           

print(sum)

 

 

연습 04. left+right를 바깥에 쓸 수는 없나? -2

left = 1
right = 1
result = 0

x = 1

while x <= 8:

    result = left + right
    left = right
    right = result
    x = x + 1

print(result)