解题思路:
注意事项:
参考代码:
import java.util.Scanner; public class 数字组合 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int t=sc.nextInt(); int[] a=new int[n+1]; for (int i = 1; i <= n; i++) { a[i]=sc.nextInt(); } int[][] dp=new int[n+1][t+1]; dp[0][0]=1; for (int i = 1; i <= n; i++) { for (int j = 0; j <= t; j++) { if (a[i]>j) { dp[i][j]=dp[i-1][j]; }else { dp[i][j]=dp[i - 1][j] + dp[i-1][j - a[i]]; } } } System.out.println(dp[n][t]); } }
0.0分
2 人评分