
⬇️ 등차수열, 등비수열, 계차/피보나치 수열 이론
등차수열의 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}')
등비수열의 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}')
첫날 쌀 두톨을 받고 둘쨋날 부터 하루전의 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}')
다음 수열의 일반항을 구하고 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}')
피보나치 수열에서 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}')