码迷,mamicode.com
首页 > 其他好文 > 详细

递归(3)

时间:2018-03-20 11:46:02      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:can   www   str   gpo   tin   turn   col   style   ati   

1.对处理递归方法的总结

调用递归的时候,把递归函数当成一个黑盒子,下面的这位总结的不错可以参考

https://www.zhihu.com/question/31412436/answer/51922344

2.整数划分问题

package day6;

import java.util.Scanner;

public class Division {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个正整数:");
        int m = sc.nextInt();
        System.out.println("请输入你的最大加数");
        int n = sc.nextInt();
        int num = q(m, n, "");
        System.out.println("num=" + num);
    }
    private static int q(int m, int n, String str) {
        // 必须要求:m>0,n>0
        if (m < 0 || n < 0)
            return 0;
        //输出都是1+1+1+1+...+1的情况
        if ((m == 1) || (n == 1)) {
            System.out.print(str);
            for (int i = 1; i < m; i++) {
                System.out.print("1+");
            }
            System.out.println("1");
            return 1;
        }
        //最大不超过n即q(m,m)等效于          最大为m  +  q(m,m-1)继续递归
        if(m==n){
            System.out.println(str+m);
            return 1+q(m,m-1,str);
        }
        //最大不超过m即q(m,n)等效于         q(m,n-1)   + q(m-n,n)
        
        if(m>n){
            int n1 = q(m-n,n,str+n+"+");
            int n2 = q(m,n-1,str);
            return n1+n2;
        }
        return q(m,m,str);//m < n,直接返回递归分解的个数q(m,m)。
    }

}

 

递归(3)

标签:can   www   str   gpo   tin   turn   col   style   ati   

原文地址:https://www.cnblogs.com/zoulingjin/p/8608239.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!