본문 바로가기
개발일지/Python

[복기] 등비 수열 코드

by 개발에정착하고싶다 2022. 5. 5.
320x100
# 등비 수열(일방항) 공식: an = a1 * r^(n-1)
# 등비 수열(합) 공식: sn = a1 * (1-r^n) / (1-r)

# 내 코드
# mul이랑 sum이랑 약간 꼬였다. 그만큼 이해도가 낮았다.
# 마지막엔 대강 생각으로 하기보단 감으로 끼워맞추기 식으로 해서
# 맞추게 되었다. 어쨌건 지금은 성공

a1 = int(input('a1: '))
r = int(input('R: '))
n = int(input('n: '))

count = 1
mul_num = 0
sum_num = a1
while count < n+1:

    mul_num += sum_num
    print(f'{count}번째 항의 값: {sum_num}')
    print(f'{count}번째 항까지의 값: {mul_num}')
    sum_num *= r

    count += 1

 

 

# 해답 코드

def sequenceCal(n1, r, n):

    valueN = 0; sumN = 0

    i = 1
    while i <= n:
        if i == 1:
            valueN = n1
            sumN = valueN
            print(f'{i}번째 항의 값: {valueN}')
            print(f'{i}번째 항까지의 값: {sumN}')

            i += 1
            continue

        valueN *= r
        sumN += valueN
        print(f'{i}번째 항의 값: {valueN}')
        print(f'{i}번째 항까지의 값: {sumN}')

        i += 1

inputN1 = int(input('a1입력: '))
inputR = int(input('공비입력: '))
inputN = int(input('n입력: '))

sequenceCal(inputN1,inputR,inputN)

 

코드 길이는 내가 더 짧은데, 이해도가 낮아서 그런가;

뭔가 불완전한 코드의 느낌이 난다.

300x250