arr={3,34,4,12,5,2}, S=9;是否有满足从arr中选取若干的数,使其和等于S,若有输出true,否则输出false
public class Main {
public static void main(String[] args) {
int[] arr = new int[] {3,34,4,12,5,2};
int S=9;
boolean book[][] = new boolean[arr.length][S+1];
for(int i=0;i<arr.length;i++)
{
book[i][0] = true;
}
for(int i=0;i<S+1;i++)
{
book[0][i] = false;
}
book[0][arr[0]] = true;
for(int i=1;i<arr.length;i++)
for(int j=1;j<S+1;j++)
{
if(j<arr[i])
{
book[i][j] =book[i-1][j];
}else {
book[i][j] = book[i-1][j] || book[i-1][j-arr[i]];
}
}
System.out.println(book[arr.length-1][S]);
}
}