/* * File: ssum.c * Purpose: Solves the SSUM problem naively. * Compilation: gcc -o ssum ssum.c * Execution: ./ssum * Author: San Skulrattanakulchai */ #include #include static bool solution = false; void check(int i, int sum, int a[], int size, int target) { if (i < size) { check(i+1, sum, a, size, target); check(i+1, sum + a[i], a, size, target); } else if (sum == target) solution = true; } void ssum(int a[], int size, int target) { solution = false; check(0, 0, a, size, target); printf("%s\n", solution ? "true" : "false"); } int main(int argc, char **argv) { int a[] = { 7, 3, 1, 5, 6 }; ssum(a, 5, 12); /* => true */ ssum(a, 5, 24); /* => false */ }