import java.util.ArrayList; import java.util.Scanner; public class 和为T{ static int sum, ans = 0; static int[] arr; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); } sum = sc.nextInt(); dfs(n - 1, 0, ""); System.out.println(ans); } /** * * @param i * 当前数 * @param s * 取的数的和 * @param str * 记录我取了那些数 */ public static void dfs(int i, int s, String str) { // 边界 if (i == -1) { // !str.equals("")表示我最少取了一个 如果输入的是0,那么我可以一个数都不取,但题目是不允许这种情况的 if (!str.equals("") && s == sum) { ans++; System.out.println(str); } return; } // 不取的情况 dfs(i - 1, s, str); // 取的情况 dfs(i - 1, s + arr[i], arr[i] + " " + str); } }
0.0分
3 人评分
2005年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:643 |
C语言训练-最大数问题 (C语言代码).........关于-1浏览:762 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:589 |
母牛的故事 (C语言代码)浏览:1409 |
破解简单密码 (C语言代码)浏览:1863 |
弟弟的作业 (C++代码)浏览:1342 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:561 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:642 |
蛇行矩阵 (C语言代码)浏览:606 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)from DQM浏览:773 |