算法——递推算法例子代码

2025-04-18 18:53:58

1、public class DiTui { public static void main(String[] args) { int m = 6; int sum = fibonacci(m); System.out.println(m+"个月后共有兔子"+sum+"对。") } //递推算法,兔子产仔问题。 public static int fibonacci(int month){ int f1 = 1,f2 = 1; if(month==1 || month==2){ return 1; }else{ f1 = fibonacci(month-1);//根据已知结果和关系求解中间值,如果没 //有达到要求则继续通过已知结果和关系求解,逐步递推 f2 = fibonacci(month-2); return f1+f2; } }}

2、public class DiTu坡纠课柩i { public static void main(String[] args像粜杵泳) int month = 48; money(month); } /*这个一个关于存钱的问题,一个富二代给他儿子的四年大学生活存一笔钱,富三代每月只能取3k作为下个月的生活费,采用的是整存零取的方式, 年利率在1.71%,请问富二代需要一次性存入多少钱。 思路: 这个题目是我们知道了结果,需要逆推条件, 第48月富三代要连本带息的把3k一把取走,那么 第47月存款应为: (第48个月的存款+3000)/(1+0.0171/12(月)); 第46月存款应为: (第47个月的存款+3000)/(1+0.0171/12(月)); ..... ..... 第1个月存款应为: (第2个月的存款+3000)/(1+0.0171/12(月));*/ public static double money(int month){ double rate = 0.0171; double f2 = 3000; double f1 = 0; for(int i=(month-1);i>=1;i--){ f1 = (f2+3000)/(1+rate/12);//根据已知结果和关系求解中间值,如果没有达到要求则继续通过已知结果和关系求解,逐步递推 f2 = f1; System.out.println("第"+i+"个月本息总额:"+f2); } return 0; }}

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢