복리 이자는 원금에 이자가 붙고, 그 이자가 다음 기간에 다시 이자를 발생시키는 방식입니다. 아래는 C 언어로 복리 이자 계산을 5가지 방법으로 구현한 예제입니다. 각 방법은 다른 접근법을 사용하여 코딩테스트에 대비할 수 있도록 설계되었습니다.
1. 기본 반복문 사용
가장 직관적인 방법으로, for 루프를 사용하여 매년 이자를 계산합니다.
#include <stdio.h>
int main() {
double principal = 1000.0; // 원금
double rate = 0.05; // 연 이율 (5%)
int years = 10; // 기간 (년)
double amount = principal;
for (int i = 0; i < years; i++) {
amount += amount * rate; // 복리 계산: A = P(1 + r)
}
printf("원금: %.2f, %d년 후 금액: %.2f\n", principal, years, amount);
return 0;
}
2. pow 함수 사용 (수학 라이브러리)
수학 라이브러리의 pow 함수를 사용하여 복리 이자 공식 A = P(1 + r)^t를 직접 구현합니다.
#include <stdio.h>
#include <math.h>
int main() {
double principal = 1000.0; // 원금
double rate = 0.05; // 연 이율
int years = 10; // 기간
double amount = principal * pow(1 + rate, years);
printf("원금: %.2f, %d년 후 금액: %.2f\n", principal, years, amount);
return 0;
}
3. 재귀 함수 사용
재귀를 사용하여 복리 이자를 계산합니다. 매년 이자를 재귀 호출로 누적합니다.
#include <stdio.h>
double calc_compound(double amount, double rate, int years) {
if (years == 0) return amount;
return calc_compound(amount * (1 + rate), rate, years - 1);
}
int main() {
double principal = 1000.0; // 원금
double rate = 0.05; // 연 이율
int years = 10; // 기간
double amount = calc_compound(principal, rate, years);
printf("원금: %.2f, %d년 후 금액: %.2f\n", principal, years, amount);
return 0;
}
4. 배열을 활용한 연도별 이자 추적
각 연도의 금액을 배열에 저장하여 연도별 변화를 추적합니다.
#include <stdio.h>
int main() {
double principal = 1000.0; // 원금
double rate = 0.05; // 연 이율
int years = 10; // 기간
double amounts[11]; // 연도별 금액 저장
amounts[0] = principal;
for (int i = 1; i <= years; i++) {
amounts[i] = amounts[i-1] * (1 + rate);
}
printf("원금: %.2f, %d년 후 금액: %.2f\n", principal, years, amounts[years]);
return 0;
}
5. 사용자 입력 처리 및 에러 체크
실제 코딩테스트 환경을 고려하여 사용자 입력을 받고, 입력값의 유효성을 검사합니다.
#include <stdio.h>
#include <math.h>
int main() {
double principal, rate;
int years;
printf("원금을 입력하세요 (양수): ");
scanf("%lf", &principal);
if (principal <= 0) {
printf("원금은 양수여야 합니다.\n");
return 1;
}
printf("연 이율을 입력하세요 (예: 5% = 0.05): ");
scanf("%lf", &rate);
if (rate < 0) {
printf("이율은 음수일 수 없습니다.\n");
return 1;
}
printf("기간(년)을 입력하세요 (정수): ");
scanf("%d", &years);
if (years < 0) {
printf("기간은 음수일 수 없습니다.\n");
return 1;
}
double amount = principal * pow(1 + rate, years);
printf("원금: %.2f, %d년 후 금액: %.2f\n", principal, years, amount);
return 0;
}
결론
위 5가지 방법은 복리 이자 계산을 다양한 방식으로 구현한 예제입니다. 코딩테스트에서는 시간 복잡도, 코드 가독성, 에러 처리 등을 고려해야 하므로, 상황에 맞는 방법을 선택하세요. 예를 들어, 단순 계산에는 pow 함수가 적합하고, 연도별 추적이 필요하다면 배열을 사용하는 것이 좋습니다.
댓글
댓글 쓰기