得到整数X(暴力破解)
某君有 nnn 个互不相同的正整数,现在他要从这 nnn 个正整数之中无重复地选取任意个数,并仅通过加法凑出整数 XXX。求某君有多少种不同的方案来凑出整数 XXX。
输入格式
第一行,输入两个整数 n,X(1≤n≤20,1≤X≤2000)n,X(1 \leq n \leq 20, 1 \leq X \leq 2000)n,X(1≤n≤20,1≤X≤2000)。
接下来输入 nnn 个整数,每个整数不超过 100100100。
输出格式
输出一个整数,表示能凑出 XXX 的方案数。
样例输入
6 6 1 2 3 4 5 6
样例输出
4
package 计蒜客; import java.util.Scanner; public class 得到整数X2 { /** * @param args */ static int x; static int count=0; static int n; public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); n=scan.nextInt(); x=scan.nextInt(); int[] arr=new int[n]; for(int i=0;i<arr.length;i++){ arr[i]=scan.nextInt(); } dfs(arr,0,0); System.out.println(count); } public static void dfs(int[] arr,int i,int sum){ if(i==n&&sum==x){count++;return;} if(i==n) return; if(sum>x){return;} dfs(arr,i+1,sum+arr[i]); dfs(arr,i+1,sum); } }