파이썬(33~37)

43. 연습문제

함수를 이용한 프로그래밍

재귀함수를 이용해서 팩토리얼 함수를 만들자.

ex)

def recursionFun(n):

if n == 1:
    return n

return n * recursionFun(n-1)

inputNumber = int(input('input number : '))
print(format(recursionFun(inputNumber), ','))

출력값 :
input number : 4
24

ex) 단리/월 복리 함수
def singleRateCalculator(m, t, r):

totalMoney = 0
toralRateMoney = 0

for i in range(t):
    toralRateMoney += m * (r * 0.01)

totalMoney = m + toralRateMoney
return int(totalMoney)

def multiRateCalculator(m, t, r):

t = t * 12
rpm = (r / 12) * 0.01

totalMoney = m

for i in range(t):
    totalMoney += totalMoney * rpm

return int(totalMoney)

money = int(input('예치금(원) : '))
term = int(input('기간(년) : '))
rate = int(input('연 이율(%) : '))

print('[단리 계산기]')
print(f'{term}년 후 총 수령액 : {singleRateCalculator(money, term, rate)}')

print('[복리 계산기]')
print(f'{term}년 후 총 수령액 : {multiRateCalculator(money, term, rate)}')

44. 연습문제

#등차 수열 공식 : an = a1 +(n-1) x d
#등차 수열 합 공식 : sn = n x (a1 + an) / 2

ex) 등차수열
def sequenceCal(n1, d, 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 += d
    sumN += valueN
    print(f'{i}번째 항의 값 : {valueN}')
    print(f'{i}번째 항까지의 값 : {sumN}')

    i += 1

inputN1 = int(input('a1 입력 : '))
inputD = int(input('공차 입력 : '))
inputN = int(input('n 입력 : '))

sequenceCal(inputN1, inputD, inputN)

45. 연습문제

등비수열.

ex)등비수열의 값

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)

47. 연습문제(모듈)

상품 구매 개수에 따라 할인율이 결정되는 모듈 만들고 다음과 같이 계산 결과가 출력되는 프로그램을 만들자.

ex)

def calculatorTotalPrice(gs):

if len(gs) <= 0:
    print('구매 상품이 없습니다')
    return

rate = 25
totalPrice = 0

rates = {1:5, 2:10, 3:15, 4:20}

if len(gs) in rates:
    rate = rates[len(gs)]

for g in gs:
    totalPrice += g * (1- rate * 0.01)

return [rate, int(totalPrice)]

.........................................

import discount as dc

if name == 'main':

fLag = True
gs = []

while fLag:

    selectNumber = int(input('1. 구매, 2. 종료'))

    if selectNumber == 1:
        goods_price = int(input('상품 가격 입력 '))
        gs.append(goods_price)

    elif selectNumber == 2:
        result = dc.calculatorTotalPrice(gs)
        fLag = False

print(f'할인율 : {result[0]}%')
print(f'합계 : {format(result[1], ',')}원')

48. 연습문제(모듈)

순열함수 8p3 : 8 x 7 x 6 = 336

ex) 순열함수 프로그램 모듈만들기

def getPermutationCnt(n, r):

result = 1

for n in range(n, (n-r), -1):
    print('n : {}'.format(n))
    result = result * n

return result

...............................................

import permutation as pt

numN = int(input('numN 입력 : '))
numR = int(input('numR 입력 : '))

print(f'{numN}P{numR} : {pt.getPermutationCnt(numN, numR)}')

출력값 :

numN 입력 : 5
numR 입력 : 3
n : 5
n : 4
n : 3
5P3 : 60

profile
안녕하세요~

0개의 댓글