수열
: 규칙성을 가지고 나열되어 있는 수들등차수열
: 연속된 두 항의 차이가 일정한 수열공차(d)
: 등차 수열에서 증가하는 값등차 중항
: 연속된 세 항에서 가운데 항# 입력 : 첫째항, 공차, 값을 구할 항
# 출력 : 값을 구할 항
# 반복 사용
valueN = 0;
n = 1
while True:
if n == 1:
valueN = inputN1
print('{}번째 항의 값 : {}'.format(n, valueN))
n += 1
continue
valueN += inputD
print('{}번째 항의 값 : {}'.format(n, valueN))
if n == inputN:
break
n += 1
# 공식 사용
valueN = inputN1 + (inputN-1) * inputD
# 입력 : 첫째항, 공차, 끝 항
# 출력 : 첫째항부터 끝 항까지의 합
# 반복 사용
valueN = 0
sumN = 0 # 합계 변수
n = 1
while True:
if n == 1:
valueN = inputN1
sumN += valueN
print('{}번째 항까지의 합 : {}'.format(n, sumN))
n += 1
continue
valueN += inputD
sumN += valueN
print('{}번째 항까지의 합 : {}'.format(n, sumN))
if n == inputN:
break
n += 1
# 공식 사용
valueN = int(inputN1 + (inputN-1) * inputD)
# 합계 변수
sumN = int(inputN * (inputN1 + valueN) / 2)
등비수열
: 연속된 두 항의 비가 일정한 수열등비 중항
: 연속된 세 항에서 가운데 항# 입력 : 첫째항, 공차, 값을 구할 항
# 출력 : 값을 구할 항
# 반복 사용
valueN = 0
n = 1
while n <= inputN:
if n == 1 :
valueN = inputN1
print('{}번째 항의 값 : {}'.format(n, valueN))
n += 1
continue
valueN *= inputR
print('{}번째 항의 값 : {}'.format(n, valueN))
if n == inputN:
break
n += 1
# 수식 사용
valueN = inputN1 * (inputR ** inputN-1)
# 입력 : 첫째항, 공차, 끝 항
# 출력 : 첫째항부터 끝 항까지의 합
# 반복 사용
valueN = 0
sumN = 0 # 합계 변수
n = 1
while n <= inputN:
if n == 1 :
valueN = inputN1
sumN += valueN
print('{}번째 항까지의 합 : {}'.format(n, sumN))
n += 1
continue
valueN *= inputR
sumN += valueN
print('{}번째 항까지의 합 : {}'.format(n, sumN))
if n == inputN:
break
n += 1
# 수식 사용
# 합계 변수
sumN = inputN1 * (1 - (inputR ** inputN)) / (1 - inputR)
시그마(∑)
: 수열의 합을 나타내는 기호계차수열
: 어떤 수열의 인접하는 두 항의 차로 이루어진 또 다른 수열
계차 수열과 일반항
일반항 bn = b1 + (n-1)d
일반항 an = (n-1)(b1 + (bn-1)) = (n-1)(2b1 + (n-2)d)
# 입력 : 첫째항, 구할 항, 계차수열의 첫째항, 계차수열의 공차
# 출력: 구할 항의 값
# on = 3, 7, 13, 21, 31, 43, 57
# 4 6 8 10 12 14
# 반복
valueAN = 0
valueBN = 0
n = 1
while n <= inputAN:
if n == 1:
valueAN = inputAN1
valueBN = inputBN1
print('▫an의 {}번째 항의 값 : {}'.format(n, valueAN))
print('▪bn의 {}번째 항의 값 : {}'.format(n, valueBN))
n += 1
continue
valueAN = valueAN + valueBN
valueBN = valueBN + inputBD
print('▫an의 {}번째 항의 값 : {}'.format(n, valueAN))
print('▪bn의 {}번째 항의 값 : {}'.format(n, valueBN))
if n == inputAN:
break
n += 1
# 수식 사용
# bn = 2n + 2
# an = a1 + (n-1)(b1 + 2n)/2
# an = 3 + (n-1)(2n+4)/2 = 3 + (n-1)(n+2) = n^2 +n +1
valueAN = inputAN ** 2 + inputAN + 1
피보나치 수열
: a1 = 1, a2 = 1이고 n > 2일 때, an = an-2 + an-1인 수열을 말한다.# 입력 : 값을 구할 항
# 출력 : 피보나치 수열 값 numN
num1 = 1
num2 = 1
if inputN == 1 or inputN == 2:
numN = 1
else:
n = 3
while n <= inputN:
numN = num1 + num2
num1, num2 = num2, numN
if n == inputN :
break
n += 1
팩토리얼(!)
: 1부터 양의 정수 n까지의 정수를 모두 곱한 것# 반복문
result = 1
for n in range(1, inputN+1):
result *= n
# 재귀함수
def factorialFunc(n):
if n == 1 or n == 0 : return 1
else : return n * factorialFunc(n-1)
result = factorialFunc(inputN)
# math 모듈
import math
result = math.factorial(inputN)
# 입력 : 값을 구할 항
# 출력 : 군수열 값
# 군수열 : 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 ...
flag = True
n = 1; nCnt = 1; searchN = 0
while flag:
for i in range(1, n + 1):
if i == n:
print('{} '.format(i), end='')
else:
print('{}, '.format(i), end='')
if nCnt == inputN:
searchN = i
flag = False
break
nCnt += 1
print()
n += 1