이용한 공식
이 공식을 이용해서 주어진 값으로 복리를 계산하는 코드를 재귀함수를 이용해서 짜려고한다
첫시도..
def compound(p,r,n,t):
if t == 2:
return p*(1+r/n)**(n*t)
else:
return compound(p,r,n,t-1)*(1+r/n)**(n*t)
print(compound(1500000, 0.043, 4, 6))
결과값 : 3528509.243796015
정답: 1938836.8221341053
무식하게 박아본코드... 당연히 제곱이 무식하게 늘어나기때문에 실패를 했다
두번째 시도
def compound(p,r,t,n):
if t == 1:
return p*(1+r/n)**n
else:
return compound(p,r,t-1,n)*(1+r/n)**n
n*t의 제곱을 해야하는거니까 n을 t만큼 제곱하면되는게 아닐까?
라는 생각으로 코드를 짜봤다
여기에는 안적었지만 처음할때에는 t와 n의 순서를 다르게했기 때문에
다른 결과가 나왔었는데 그거를 해결하니까 정답이 제대로 나왔다
그리고 나서 답안을 봐보니까
def compound_interest_amount(p, r, t, n):
if t * n == 1:
return p * (1 + r / n)
elif t * n > 1:
return compound_interest_amount(p, r, t - 1 / n, n) * (1 + r / n)
답안은 이런 코드를 이용했다 t-1n을 줘서 t*n을 이용해서
t*n==1 이됬을때 기존 t*n값만큼 도는 코드인데
처음에는 이렇게 짜고싶었는데 너무 생각이 안나서 바꾼거였는데
이런 코드를 보니까 조금더 생각을 해볼걸 했나 라는 생각이 든다...
'내일배움 캠프 > TIL' 카테고리의 다른 글
2023 03 28 파이썬 rpg 저장 구현,,, (0) | 2023.03.29 |
---|---|
2023 03 27 파이썬 터미널 RPG 만들기 (0) | 2023.03.29 |
2023 03 23 코딩 테스트 소수 찾기 (0) | 2023.03.23 |
2023 03 22 코딩 테스트를 하면서 새로 배운것들... (0) | 2023.03.22 |
2023 03 21 자연수 뒤집어 배열로 만들기 (0) | 2023.03.22 |