반응형
문제
회차별 납입금(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))
반응형
'알고리즘 문제 & 프로그래밍 > 파이썬' 카테고리의 다른 글
[파이썬] wav파일에 lowpass필터 적용하는 법 (0) | 2021.05.01 |
---|---|
일복리, 이자 계산 & 기간 구하기 문제 | 파이썬 datetime 라이브러리 (2) | 2020.07.01 |
[백준 1110번] 더하기 사이클 문제 | 파이썬 while문 (0) | 2020.06.20 |
[백준 2884번] 알람시계 문제 | 파이썬 if문 (0) | 2020.06.13 |
[프로젝트 오일러] 5번 문제 & 풀이 (1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수) (0) | 2020.05.30 |
댓글