Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.ByteArrayInputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.Arrays;
- public class TargetSum {
- static void fakeInput() {
- String test = "1 1 1 1 1\n"
- + "3";
- System.setIn(new ByteArrayInputStream(test.getBytes()));
- }
- public static void main(String[] args) throws IOException {
- fakeInput();
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- int[] numbers = Arrays.stream(br.readLine().split(" "))
- .mapToInt(Integer::parseInt)
- .toArray();
- int targetSum = Integer.parseInt(br.readLine());
- int result = solve(0, numbers, 0, targetSum);
- System.out.println(result);
- }
- static int solve(int index, int[] numbers, int current, int target) {
- //stop
- if (index == numbers.length) {
- if (current == target) {
- return 1;
- }
- return 0;
- }
- int count = 0;
- count += solve(index + 1, numbers, current + numbers[index], target);
- count += solve(index + 1, numbers, current - numbers[index], target);
- return count;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement