# 피보나치 수를 계산하시오
inputN = int(input('n 입력: '))
valueN = 0
sumN = 0
valuePreN2 = 0
valuePreN1 = 0
n = 1
while n <= inputN:
if n == 1 or n == 2:
valueN = 1
valuePreN2 = valueN
valuePreN1 = valueN
sumN += valueN
n += 1
else:
valueN = valuePreN2 + valuePreN1
valuePreN2 = valuePreN1
valuePreN1 = valueN
sumN += valueN
n += 1
print('{}번째 항의 값: {}'.format(inputN, valueN))
print('{}번째 항까지의 합: {}'.format(inputN, sumN))
# 반복문을 이용하는 경우
inputN = int(input('n 입력: '))
result = 1
for n in range(1,(inputN+1)):
result *= n
print('{}팩토리얼: {}'.format(inputN, result))
------------------------------------------
# 재귀 함수를 이용하는 경우
inputN = int(input('n 입력: '))
def factorialFun(n):
if n == 1:
return 1
else:
return n * factorialFun(n-1)
print('{} 팩토리얼: {}'.format(inputN, factorialFun(inputN)))
------------------------------------------------
# 팩토리얼 모듈 이용
inputN = int(input('n 입력: '))
import math
print('{}팩토리얼: {}'.format(inputN, math.factorial(inputN)))
# 50번째 항의 수를 구하시오
1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5
=> (1), (1,2), (1,2,3), (1,2,3,4) (1,2,3,4,5)
1) 각 군의 항의 개수가 등차 수열
2) 각 군의 항의 개수의 총합을 구하면 그게 몇번째 항까지 왔는지 알 수 있음.
# n번째 항의 값을 출력하는 프로그램을 만들자
# 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5
# n은 군의 개수, nCnt는 항, searchN은 구하고자 하는 항의 값
inputN = int(input('n항 입력: '))
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='')
nCnt += 1
if nCnt > inputN:
searchN = i
flag = False
break
print()
n += 1
print('{}항: {}'.format(inputN, searchN))

# 4명의 친구가 원탁 테이블에 앉을 수 있는 순서
n = int(input('친구 수 입력: '))
result = 1
for i in range(1,n):
result *= i
print('result: {}'.format(result))
# 8C3, 7C5 다음 조합들의 값을 구하는 프로그램을 만들어보자.
# 공식 = n! / r!(n-r)! -> 8P3을 먼저 구한 후, r! 을 구해서 나누어주면 됨.
numN = int(input('numN 입력: '))
numR = int(input('numR 입력: '))
resultP = 1 # nPr
resultR = 1 # r!
resultC = 1 # nCr
# 순열 구하기(nPr)
for n in range(numN,(numN-numR), -1):
print('n: {}'.format(n))
resultP *= n
print('resultP: {}'.format(resultP))
# r! 구하기
for n in range(numR, 0, -1):
print('n: {}'.format(n))
resultR *= n
print('resultR: {}'.format(resultR))
# 조합 구하기(nCr)
resultC = int(resultP / resultR)
print('resultC: {}'.format(resultC))
# 확률 구하기
result = (1/resultC) * 100
print('{}%'.format(round(result, 2)))
# 박스에 '꽝' 종이 4장, '선물' 종이 3장. '총 7장에서 꽝 2장과 선물 1장을 뽑을 확률 출력'
def proFun():
numN = int(input('numN 입력: '))
numR = int(input('numR 입력: '))
resultP = 1
resultR = 1
resultC = 1
for n in range(numN, (numN-numR), -1):
resultP = resultP * n
print('resultP: {}'.format(resultP))
for n in range(numR, 0, -1):
resultR = resultR * n
print('resultR: {}'.format(resultR))
resultC = int(resultP / resultR)
print('resultC: {}'.format(resultC))
return resultC
sample = proFun()
print('sample: {}'.format(sample))
event1 = proFun()
print('sample: {}'.format(event1))
event2 = proFun()
print('sample: {}'.format(event2))
probability = (event1 * event2) / sample
print('probability: {}%'.format(round(probability * 100, 2)))
돌아서면 까먹고, 돌아서면 까먹는데, 나는 금붕어인가..!
그래도 어제 팀스터디 퀵OT에서 운영 매니저님이 해주신 말이 큰 힘이 됐다.
아직 파이썬 설치한지 갓 일주일이다. 어려운게 당연한거니 힘내보자!