public static boolean hasSubsetWithSum0(final int[] numbers) {
		double max = Math.pow(2, numbers.length);
		Stack<Integer> stack = new Stack<Integer>();
		for (int i=0;i<max;i++) {
			stack.removeAllElements();
			String binary = Integer.toBinaryString(i);
			int sum = 0;
			boolean ifAdd = false;
			for (int j=0;j<binary.length();j++) {
				if (binary.charAt(j) == '1') {
					ifAdd = true;
					int idx = numbers.length-binary.length()+j;
					sum += numbers[idx];
					stack.add(numbers[idx]);
				}
			}
			if(ifAdd && sum == 0) {
				while(!stack.isEmpty()) {
					System.out.print(stack.pop() + " ");
				}
				System.out.println();
				return true;
			}
		}
		return false;
	}