본문 바로가기
알고리즘 문제 & 프로그래밍/파이썬

복리, 원리합계, 이자 계산 문제(등비수열) | 파이썬 while, for문

by 달슬 2020. 6. 24.
반응형

문제

회차별 납입금(or 저축액), 기간, 이자율을 입력받고, 모든 기간 경과 후의 원금총액, 이자총액, 원리금을 구해보자.

(단, 기간 : 1~30회 제한, 이자율 : 1%~100% 제한)


접근

1. (1+이자율)을 곱한값을 계속 더하면 된다(등비수열). 이 값은 '원리합계'이다.

2. 원금총액 = 회차별 납입금 X 기간

3. 이자총액 = 원리합계 - 원금총액

#복리 프로그램 작성
total = income = int(input('회차별 납입금 : '))
term = int(input('기간(1<=회차<=30) : '))
while term < 1 or term >30:
  print('잘못된 범위입니다. 1~30 사이의 값을 입력하세요.')
  term = int(input('기간(1<=회차<=30) : '))
  if term >= 1 and term <=30:
    break
rate = float(input('이자율(0.01<=이자율<=1) : '))
while rate < 0.01 or rate > 1:
  print('잘못된 범위입니다. 0.01~1 사이의 값을 입력하세요.')
  rate = float(input('이자율(0.01<=이자율<=1) : '))
  if rate >= 0.01 and rate <= 1:
    break
sum_rate = 0

#원리합계
for i in range(1,term+1):
  total = total * (1+rate)
  sum_rate += total

#이자총액
sum_income = income * term
total_rate = sum_rate - sum_income

print('\n')
print('회차별 납입금 : %d원' %income)
print('기간 : %d기' %term)
print('이자율 : %0.2f' %rate)
print('\n')
print('※ 참고 : 1회차 납입금인 %d원은 %d기 기말이 되면 %d원입니다.' %(income, term, total))
print('\n')
print('%d기 원금총액 : %d원' %(term, sum_income))
print('%d기 이자총액 : %d원' %(term, total_rate))
print('%d기 기말 만기금액 : %d원' %(term, sum_rate))
반응형

댓글