## Problem:

Given an array of ints, is it possible to choose a group of some of the ints, beginning at the start index, such that the group sums to the given target? However, with the additional constraint that all 6's must be chosen. (No loops needed.)

groupSum6(0, {5, 6, 2}, 8) → true
groupSum6(0, {5, 6, 2}, 9) → false
groupSum6(0, {5, 6, 2}, 7) → false

## Solution:

public boolean groupSum6(int start, int[] nums, int target) {
if (start >= nums.length)
return (target == 0);

if (groupSum6(start+1, nums, target - nums[start])) return true;
if (nums[start] != 6 && groupSum6(start+1, nums, target)) return true;

return false;
}

1. // not that effective sollution but does the same thing i guess
public boolean groupSum6(int start, int[] nums, int target) {
if(start >= nums.length){
return target == 0;
}
if(nums[start] == 6){
if( groupSum6(start + 1, nums, target - nums[start])) return true;
} else {
if( groupSum6(start + 1, nums, target - nums[start])) return true;
if( groupSum6(start + 1, nums, target)) return true;
}
return false;
}

2. public boolean groupSum6(int start, int[] nums, int target) {
if (start > nums.length - 1) return (target == 0) ? true : false;
if (nums[start] == 6) return groupSum6(start+1, nums, target - 6);
return (groupSum6(start + 1, nums, target - nums[start])) ? true : groupSum6(start+1, nums, target);
}