문제 5. 언제 돈이 똑 떨어질까?
통나무 집을 만드시는 톰 아저씨의 통장에는 5000만원의 돈이 있으며, 그분이 매달 저축하는 금액은 100만원이다. 하지만 그분이 매달 생활비로 쓰시는 돈이 250만원이다. 그나마 다행인 것은 이자율이다. 아저씨가 돈을 맡긴 은행에서는 한달에 원금의 2%에 해당하는 어마어마한 이자를 지급한다(연간 이자가 아닌 월 단위 이자가 2%이다.) 그리고 다음은 오지랖 넓은 필자와 아저씨의 대화이다.
필자 : 아저씨 그렇게 돈을 지출하시면 언젠가는 통장이 비게 되요.
톰 아저씨 : 버는 돈 보단 쓰는 돈이 많아서 걱정된단 말이지?
필자 : 버시는 금액과 이자를 포함해도 지출이 더 커요. 언젠간 텅 비게 돼요.
톰 아저씨 : 내게 중요한 건 통장이 언제 비게 되냐는 거다! 그게 언제냐? 계산 좀 해봐라.
정확히 몇달 뒤에 아저씨는 통장의 잔고가 0이 되는 것을 확인하게 되겠는가? 이를 확인하게 위한 프로그램을 작성해 보자. 언제 비게 되고 마지막 출금액이 얼마가 되는지 계산하여 출력해 보자.
참고로 첫 번째 달에는 5000만원에 대한 2%의 이자가 증가한 이후에 100만원이 저축되고 250만원의 지출이 생긴다. 즉 매달 이자가 증가한 이후에 100만원이 저축되고 250만원이 지출되는 방식으로 통장관리가 된다.
c언어를 배우고 있는 학생으로서 열심히 했다. 그러다고 해서 이것이 저자가 원하는 답이라고는 확신할수 없다.
1 #pragma warning(disable:4996)
2 #include <stdio.h>
3
4 int main(void)
5 {
6 int bank_money = 50000000; // 원금
7 int month_save = 1000000; // 한달 적립
8 int month_spend = 2500000;
9 int bank_temp;
10 double bank_save_rate;
11 int month = 30; // 한달은 30일
12 int sum_day = 0; // 일 합산
13 double month_rate = 0.02; // 이자율
14
15 bank_temp = bank_money;
16
17 printf("원금 : %d원 \n\n", bank_money);
18
19 while (bank_temp > 0)
20 {
21 sum_day += month; // 하루가 지날때마다 30일 추가
22 printf("=======%d일이 경과=======\n", sum_day);
23 bank_temp -= month_spend;
24 printf("찾으신 금액 : %d원 || 남은 금액 : %d원\n", month_spend, bank_temp);
25 bank_temp += month_save;
26 printf("예금하신 금액 : %d원|| 남은 금액 : %d원\n\n", month_save, bank_temp);
27
28 bank_save_rate = bank_temp * (double)month_rate;
29 // 이자 = 원금 * 이자율
30 // bank_temp += (int)bank_save_rate;
31 printf("%d일 경과 됬으므로 원금에 이자율이 적용됩니다. \n", sum_day);
32 printf("오늘의 이자 : %.0f원 \n", bank_save_rate);
33
34 printf("남은금액 (이자적용) : %.0f \n\n", bank_temp + bank_save_rate);
35 bank_temp += (int)bank_save_rate;
36
37 }
38 if (bank_temp < 0)
39 {
40 printf("예측 : %d달후 당신은 %d원 빚지게 됩니다. \n", sum_day / 12, -bank_temp);
41 }
42 else
43 printf("예측 : 당신은 몇푼만 가지게 됩니다.");
44 return 0;
45
46 }
2 #include <stdio.h>
3
4 int main(void)
5 {
6 int bank_money = 50000000; // 원금
7 int month_save = 1000000; // 한달 적립
8 int month_spend = 2500000;
9 int bank_temp;
10 double bank_save_rate;
11 int month = 30; // 한달은 30일
12 int sum_day = 0; // 일 합산
13 double month_rate = 0.02; // 이자율
14
15 bank_temp = bank_money;
16
17 printf("원금 : %d원 \n\n", bank_money);
18
19 while (bank_temp > 0)
20 {
21 sum_day += month; // 하루가 지날때마다 30일 추가
22 printf("=======%d일이 경과=======\n", sum_day);
23 bank_temp -= month_spend;
24 printf("찾으신 금액 : %d원 || 남은 금액 : %d원\n", month_spend, bank_temp);
25 bank_temp += month_save;
26 printf("예금하신 금액 : %d원|| 남은 금액 : %d원\n\n", month_save, bank_temp);
27
28 bank_save_rate = bank_temp * (double)month_rate;
29 // 이자 = 원금 * 이자율
30 // bank_temp += (int)bank_save_rate;
31 printf("%d일 경과 됬으므로 원금에 이자율이 적용됩니다. \n", sum_day);
32 printf("오늘의 이자 : %.0f원 \n", bank_save_rate);
33
34 printf("남은금액 (이자적용) : %.0f \n\n", bank_temp + bank_save_rate);
35 bank_temp += (int)bank_save_rate;
36
37 }
38 if (bank_temp < 0)
39 {
40 printf("예측 : %d달후 당신은 %d원 빚지게 됩니다. \n", sum_day / 12, -bank_temp);
41 }
42 else
43 printf("예측 : 당신은 몇푼만 가지게 됩니다.");
44 return 0;
45
46 }
0 개의 댓글: