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

2025-10-22 15:59:05

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 DiTui {    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。
猜你喜欢