100C之13:他该如何存款?

问题

假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱,他打算在今后的五年中每年的年底取出1000元,到第五年刚好取完,请算出他存钱时应存多少钱?

分析

也比较简单,可以先算出第五年年初,此人取走1000元后帐户还有多少钱, 1000/ (1+0.0063*12) ( 注意银行定期存款是单利 ),然后加上1000即是第四年年末此人帐户的存款,第四年年末的存款等于第三年年初的存款乘以(1+0.0063*12),一次类推,推五次就可得到第一年年初的存款数。

解决方案

 1:  /**
 2:   * @file   013howtodeposit.c
 3:   * @author Chaolong Zhang <emacsun@163.com>
 4:   * @date   Mon May 13 18:44:11 2013
 5:   * 
 6:   * @brief  假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱,他打算在今后的五年中每年的年底取出1000元,到第五年
 7:   * 刚好取完,请算出他存钱时应存多少钱?
 8:   * 注意: 银行定期是单利,到期不取银行把上期本金和利息合并作为下期本金
 9:   */
10:  #include <stdio.h>
11:  
12:  int main(int argc, char *argv[])
13:  {
14:      static float CurrentYear=1000;
15:      float LastYear;
16:      for (int i = 0; i < 5; ++i)
17:      {
18:          LastYear = CurrentYear / ( 1+0.0063*12 );
19:          CurrentYear = LastYear + 1000;
20:      }
21:      printf ("the man should deposit%f\n", CurrentYear-1000);
22:      return 0;
23:  }

题后语

题目中当前的存款数 CurrentYear 使用了静态局部存储变量,这种类型的变量保存在静态存储去,直到 main 函数推出才释放,适合存储以后还需要用到的变量的值。

posted @ 2013-05-13 19:23  emacsun  阅读(256)  评论(0编辑  收藏  举报