OJ题——给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数(牛客网)

原题目地址
OJ题——给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数(牛客网)_第1张图片

import java.util.Scanner;
public class Main6 {
     
    public static void main(String[] args) {
     
        Scanner input=new Scanner(System.in);
        int n=input.nextInt();
        int m=input.nextInt();
        int[] arr=new int[n+1];
        int[][] array=new int[n+1][m+1];
        for(int i=1;i<=n;i++){
     
            arr[i]=input.nextInt();
        }
        for(int i=0;i<=n;i++){
     
            array[i][0]=1;
        }
        for(int j=1;j<=n;j++) {
     
            array[0][j] = 0;
        }
        for(int i=1;i<=n;i++){
     
            for(int j=0;j<=m;j++){
     
                if(arr[i]<=j){
     
                    array[i][j]=array[i-1][j]+array[i-1][j-arr[i]];
                }else{
     
                    array[i][j]=array[i-1][j];
                }
            }
        }
        System.out.println(array[n][m]);
    }
}

执行结果:
OJ题——给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数(牛客网)_第2张图片

你可能感兴趣的:(OJ题)