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
函数推出才释放,适合存储以后还需要用到的变量的值。
作者:emacsun
出处:http://www.cnblogs.com/chaolong/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。