[Zerobase][기초수학] 시그마, 등차/등비수열, 계차/피보나치 수열 문제풀이

솔비·2023년 12월 7일

💻 Python. w/zerobase

목록 보기
23/33
post-thumbnail

⬇️ 등차수열, 등비수열, 계차/피보나치 수열 이론


등차수열


📖 1번문제

등차수열의 n번째 값과 합을 출력하는 함수를 만들어보자

def sequence_cal(a1,d,n) :
    an = 0
    sn = 0

    a = 1
    while a <= n :
        if a == 1 :
            an = a1
            sn += an
            a += 1
            continue

        an += d
        sn += an
        a += 1

    return an,sn

input_a1 = int(input('a1값 입력 : '))
input_n = int(input('n 입력 : '))
input_d = int(input('공차(d) 입력 : '))

an = sequence_cal(input_a1,input_d,input_n)[0]
sn = sequence_cal(input_a1,input_d,input_n)[1]

print(f'{input_n}항의 값 : {an}')
print(f'{input_n}항까지의 합 : {sn}')

등비수열


📖 1번문제

등비수열의 n번째 값과 항을 출력하는 함수를 만들어보자

def sequence_cal(a1,r,n) :

    an = 0
    sn = 0

    a = 1
    while a <= n :
        if a == 1 :
            an = a1
            sn += an
            a += 1

        an *= r
        sn += an
        a += 1

    return an, sn


input_a1 = int(input('a1값 입력 : '))
input_n = int(input('n 입력 : '))
input_r = int(input('공비(r) 입력 : '))

an = sequence_cal(input_a1,input_r,input_n)[0]
sn = sequence_cal(input_a1,input_r,input_n)[1]

print(f'{input_n}항의 값 : {an}')
print(f'{input_n}항까지의 합 : {sn}')

시그마


📖 1번문제

첫날 쌀 두톨을 받고 둘쨋날 부터 하루전의 2배에 해당하는 쌀을 받는다고할때
30일째 받게되는 쌀의 갯수

# 2,4,8,16,32 => 등비수열

after_day = 30
a1 = 2
r = 2

n=1
while n <= after_day :
    if n == 1 :
        result = a1
        result_sum = a1
        n += 1
        continue

    result *= r
    result_sum += result
    n += 1

print(f'{after_day}일째 받게되는 쌀의 개수 : {result}')
print(f'{after_day}일까지 받는 쌀의 총 개수 : {result_sum}')

계차수열


📖 1번문제

다음 수열의 일반항을 구하고 n항의 값과 n항까지의 합 출력하는 프로그램
{2,5,11,20,32,47,65,86,110,137,167,...}

#an = {2,5,11,20,32,47,65,86,110,137,167,...}
#bn = {3,6,9,12,15,18,21,24,27,30...}

input_n = int(input('n입력 : '))
a1 = 2
b1 = 3
b_d = 3

an = 0
an_sum = 0
bn_sum = 0

n=1
while n <= input_n :
    if n == 1 :
        an = a1
        an_sum += an
        bn_sum = b1
        n += 1
        continue

    an += bn_sum
    an_sum += an
    bn_sum += b_d
    n += 1

print(f'{input_n}항의 값 : {an}')
print(f'{input_n}항까지의 합 : {an_sum}')

피보나치수열


📖 1번문제

피보나치 수열에서 n항의 값과 n항까지의 합을 출력하는 프로그램
#{1,1,2,3,5,8,13,21,34,55,89,144,...}

input_n = int(input('n입력 : '))

a1 = 1
result = 0
result_sum = 0
pre_n1 = 0
pre_n2 = 0

n = 1
while n <= input_n :
    if n == 1 :
        result = a1
        result_sum += result
        pre_n2 = pre_n1
        pre_n1 = result
        n += 1

    result = pre_n2 + pre_n1
    result_sum += result
    pre_n2 = pre_n1
    pre_n1 = result
    n += 1

print(f'{input_n}항의 값 : {result}')
print(f'{input_n}항까지의 합 : {result_sum}')

Zero Base 데이터분석 스쿨
Daily Study Note
profile
Study Log

0개의 댓글