求一个正整数n无序拆分为小等于k个正整数的拆分方案数量(动态规划)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/skyejy/article/details/88357283

当数据规模较大时,递归的方式效率很低。


public class Main {


   
	 static int fun2(int n, int k) {
		int arr[][]=new int[n+1][k+1];
		 for(int i=1;i<=n;i++)
		 {
			 for(int j=1;j<=k;j++)
			 {
				 if(i==1||j==1) arr[i][j]=1;
				 else if(i<j) arr[i][j]=arr[i][i];
				 else if(i==j) arr[i][j]=1+arr[i][j-1];
				 else  arr[i][j]=arr[i][j-1]+arr[i-j][j];
				
			
			 }
		 }
		 
		 return arr[n][k];
		
		
		 
	}
   
   
	public static void main(String[] args) {
		// TODO Auto-generated method stub
 
    System.out.println(fun2(5,5));
	System.out.println(fun2(50,40));
	}




}

猜你喜欢

转载自blog.csdn.net/skyejy/article/details/88357283