【Java】用递归法把一个数加法划分

2021-09-16 14:42:22 浏览数 (1)

例如: 6可以划分为: 6 5 1 4 2 4 1 1 3 3 3 2 1 3 1 1 1 2 2 2 2 2 1 1 2 1 1 1 1 1 1 1 1 1 1 5可以划分为: 5 4 1 3 2 3 1 1 2 2 1 2 1 1 1 1 1 1 1 1

代码语言:javascript复制
public class a {
    //对n进行划分,a是缓冲,k是当前的位置。
    public static void f(int n,int[] a,int k){
        if (n<=0){
            for(int i=0;i<k;i  ){System.out.print(a[i] " ");}
            System.out.println();
            return ;

        }

        for(int i=n;i>0;i--){
            if(k>0 && i>a[k-1]) continue;
            a[k] = i;
            f(n-i,a,k 1);
        }
    }

    public static void main(String[] args){
        int[] a = new int[1000];
        f(6,a,0);
    }
}

0 人点赞