admin管理员组文章数量:1794759
算法初级
这篇文章讲述的是算法初级部分的最佳存款方案问题的java实现,参考的书籍为清华大学出版社出版,贾蓓等编著的《c语言趣味编程1000例》,如有错误或者不当之处,还望各位大神批评指正。
问题描述假设银行一年整存零取的月为0.63%,现在某人手里有一笔钱,打算在今后的5年中每年年底取出1000元,到第五年正好取完,问他存钱时存入了多少钱。
算法分析已知第五年正好取完,那么,立即推: (1+12*0.0063)*A = 1000 ==> A = 1000/(1+12*0.0063) (A为第四年年初剩余存款) 以此类推:第四年初剩余存款为 (A+1000)/(1+12*0.0063) 第三年初剩余存款为 (第四年年初存款+1000)/(1+12*0.0063) ………. 第一年初剩余存款为(第二年年初存款+1000)/(1+12*0.0063) 需要一个for循环,循环四次。
代码实现 public class Q7_BestSave { /** * 问题描述:假设银行一年整存零取的月为0.63%,现在某人手里有一笔钱,打算 * 在今后的5年中每年年底取出1000元,到第五年正好取完,问他存钱 * 时存入了多少钱。 * * 算法分析:已知第五年正好取完,那么,立即推: * (1+12*0.0063)*A = 1000 ==> A = 1000/(1+12*0.0063) (A为第四年年初剩余存款) * 以此类推:第四年初剩余存款为 (A+1000)/(1+12*0.0063) * 第三年初剩余存款为 (第四年年初存款+1000)/(1+12*0.0063) * .......... * 第一年初剩余存款为(第二年年初存款+1000)/(1+12*0.0063) * 需要一个for循环,循环四次。 * */ public static void main(String[] args) { double A = 0 ; //第五年底剩余0 for(int i=0 ; i<5 ; i++){ //倒推出第一年年初剩余(存入) A = (A+1000)/(1+12*0.0063) ; } System.out.println("某人向银行存入的金额为:"+A); } } 样例输出 某人向银行存入的金额为:4039.444465119001本文标签: 算法
版权声明:本文标题:算法初级 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686639322a89398.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论