黑马程序员技术交流社区
标题:
请教关于循环问题!
[打印本页]
作者:
抱0抱
时间:
2014-6-12 22:19
标题:
请教关于循环问题!
这几天在上基础班,学习C的内容,开始的习题做着感觉还不错,都能做的出来,不过今天学循环了,感觉有点小难呀!这里有一个问题请教大神们!
假设银行当年整存领取五年期的年利息为2.5%,现在某人手里有一笔钱,预计在今后的五年当中每年年底取出1000,到第五年的时候刚好取完,计算在最开始存钱的时候要存多少钱?
用C语言编写
因为平时就不太会算利率之类的题,所以遇到这样的就一点思路没有啊!求抱大腿!
作者:
抱0抱
时间:
2014-6-13 08:48
木有人回答啊、、、、
作者:
剑气近
时间:
2014-6-15 21:04
我师妹说这道题用递归做比较简单,我相信我师妹
作者:
抱0抱
时间:
2014-6-16 09:56
剑气近 发表于 2014-6-15 21:04
我师妹说这道题用递归做比较简单,我相信我师妹
这几天正在学递归呢,很坑呀,不太懂呀!有没有详细的解决方案呀!
作者:
freshnboy
时间:
2016-3-27 14:36
本帖最后由 freshnboy 于 2016-3-27 14:45 编辑
public static void main(String[] args) {
double x = 0;// 假设需要存入x元
int year = 5;// 五年取完
x = get(year);
System.out.println(x);
}
private static double get(int year) {
double result = 1000;
if (year > 1)
result = get(year - 1) / 1.025 + 1000;
return result;
}
复制代码
作者:
freshnboy
时间:
2016-3-27 14:44
很简单的,回忆一下高中数学的内容。。。
解题分析:假设第n年取钱之前的钱数为x,那么第五年的x=1000,第四年的x=1000/1.025+1000
用数学表达出来就是:f(n)=f(n-1)/1.025+1000。
已知f(5)=1000,求f(1)。
编程思路:
用递归去解决,那么好,把年数作为传入参数,设x=get(year),初始值year为5.
递减到1时return 1000;否则return get(year-1)/1.025+1000;
代码就如上图所示,最终结果为:4761.974208009808元(double数)
作者:
baby14
时间:
2018-7-31 08:05
很好很好
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2