java用dfs的思想,萌新代码,求大神帮忙解决一下
查看原帖
java用dfs的思想,萌新代码,求大神帮忙解决一下
1010781
joeyouca1楼主2023/7/1 20:24
import java.util.Scanner;
public class q6 {
    static int n,k;
    static int count=0;
    static void f(int total,int start,int end,int a[]){
        if (total==n){
            count++;
            return;
        }
        if (total>n){
            return;
        }
        for (int i = start; i <=n ; i++) {
            for (int j = 1; j <=a[i] ; j++) {
                f(total+j,i+1,n,a);
            }
        }
    }
    public static void main(String[] args) {
     Scanner sc=new Scanner(System.in);
     n=sc.nextInt();
     k=sc.nextInt();
     int a[]=new int[n+1];
     for (int i = 0; i < n+1; i++) {
            a[i]=k;
     }
     //i下标从1~n表示台阶数,给每个a[i]赋值k表示每个台阶可以有k个选择,具体来说就是输入5 2,输出11111,1112,1121,1211,122,2111,212,221
     f(0,1,n,a);
        System.out.println(count);
    }
}
思路是采用dfs判断,不是正解而且时间是肯定超了,但是代码也不对,该怎么修改呢
2023/7/1 20:24
加载中...