Last active
May 5, 2024 18:12
-
-
Save rubenhortas/58460be6b445a438ee86bcb23f87b2a5 to your computer and use it in GitHub Desktop.
math puzzle for third graders solver
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Code to find all the permutations that solve the math puzzle for third graders from the image. | |
You're supposed to fill the blanks with the numbers 1 through 9 using each digit once. | |
Usage: | |
- Compile: gcc -O3 mathPyzzleForThirdGraders.c -o mathPyzzleForThirdGraders.out | |
- Run: ./mathPyzzleForThirdGraders.out | |
*/ | |
#include <stdio.h> | |
#include <stdlib.h> | |
void initializeArray(float *array, int arrayLength) { | |
int i; | |
for(i = 0; i < arrayLength; i++) { | |
array[i] = (float)i+1.0; | |
} | |
} | |
void printArray(float *array, int arrayLength) { | |
int i; | |
for(i = 0; i < arrayLength; i++) { | |
printf("%g", array[i]); | |
if(i < arrayLenght -1) { | |
printf(","); | |
} | |
} | |
printf("\n"); | |
} | |
void swap(float *array, int x, int y) { | |
float tmp = array[x]; | |
array[x] = array[y]; | |
array[y] = tmp; | |
} | |
void solvePuzzle(float * array, int arrayLength) { | |
float result = array[0] + ((13 * array[1]) / array[2]) + array[3] + (12 * array[4]) - array[5] - 11 + ((array[6] * array[7]) / array[8]) -10; | |
if(result == 66) { | |
printArray(array, arrayLength); | |
} | |
} | |
void permute(float *array, int left, int right, int arrayLength) { | |
int i; | |
if(left == right) { | |
solvePuzzle(array, arrayLength); | |
} | |
else { | |
for (i = left; i <= right; i++) { | |
swap(array, left, i); | |
permute(array, left+1, right, arrayLength); | |
swap(array, left, i); // Backtrack | |
} | |
} | |
} | |
void main() { | |
float array[9]; | |
int arrayLength = (sizeof(array)/sizeof(int)); | |
initializeArray(array, arrayLength); | |
permute(array, 0, arrayLength-1, arrayLength); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1,2,6,4,7,8,5,3,9 | |
1,2,6,4,7,8,3,5,9 | |
1,3,2,4,5,8,7,9,6 | |
1,3,2,4,5,8,9,7,6 | |
1,3,2,9,5,6,7,4,8 | |
1,3,2,9,5,6,4,7,8 | |
1,3,4,7,6,5,2,9,8 | |
1,3,4,7,6,5,9,2,8 | |
1,3,6,2,7,9,5,4,8 | |
1,3,6,2,7,9,4,5,8 | |
1,3,9,4,7,8,5,2,6 | |
1,3,9,4,7,8,2,5,6 | |
1,4,8,2,7,9,5,3,6 | |
1,4,8,2,7,9,3,5,6 | |
1,5,3,9,4,2,7,8,6 | |
1,5,3,9,4,2,8,7,6 | |
1,5,2,3,4,8,7,9,6 | |
1,5,2,3,4,8,9,7,6 | |
1,5,2,8,4,7,3,9,6 | |
1,5,2,8,4,7,9,3,6 | |
1,9,6,4,5,8,7,3,2 | |
1,9,6,4,5,8,3,7,2 | |
1,9,6,7,5,2,4,3,8 | |
1,9,6,7,5,2,3,4,8 | |
2,1,4,3,7,9,5,6,8 | |
2,1,4,3,7,9,6,5,8 | |
2,3,6,1,7,9,5,4,8 | |
2,3,6,1,7,9,4,5,8 | |
2,4,8,1,7,9,5,3,6 | |
2,4,8,1,7,9,3,5,6 | |
2,8,6,9,4,1,7,5,3 | |
2,8,6,9,4,1,5,7,3 | |
2,9,6,3,5,1,7,4,8 | |
2,9,6,3,5,1,4,7,8 | |
3,2,1,5,4,7,8,9,6 | |
3,2,1,5,4,7,9,8,6 | |
3,2,4,8,5,1,7,9,6 | |
3,2,4,8,5,1,9,7,6 | |
3,2,8,6,5,1,7,9,4 | |
3,2,8,6,5,1,9,7,4 | |
3,1,4,2,7,9,5,6,8 | |
3,1,4,2,7,9,6,5,8 | |
3,5,2,1,4,8,7,9,6 | |
3,5,2,1,4,8,9,7,6 | |
3,6,4,9,5,8,7,1,2 | |
3,6,4,9,5,8,1,7,2 | |
3,9,6,2,5,1,7,4,8 | |
3,9,6,2,5,1,4,7,8 | |
3,9,2,8,1,5,7,6,4 | |
3,9,2,8,1,5,6,7,4 | |
4,2,6,1,7,8,5,3,9 | |
4,2,6,1,7,8,3,5,9 | |
4,3,2,1,5,8,7,9,6 | |
4,3,2,1,5,8,9,7,6 | |
4,3,9,1,7,8,5,2,6 | |
4,3,9,1,7,8,2,5,6 | |
4,9,6,1,5,8,7,3,2 | |
4,9,6,1,5,8,3,7,2 | |
5,2,1,3,4,7,8,9,6 | |
5,2,1,3,4,7,9,8,6 | |
5,3,1,7,2,6,8,9,4 | |
5,3,1,7,2,6,9,8,4 | |
5,4,1,9,2,7,8,3,6 | |
5,4,1,9,2,7,3,8,6 | |
5,4,8,9,6,7,1,3,2 | |
5,4,8,9,6,7,3,1,2 | |
5,1,2,9,6,7,3,4,8 | |
5,1,2,9,6,7,4,3,8 | |
5,7,2,8,3,9,1,6,4 | |
5,7,2,8,3,9,6,1,4 | |
5,9,3,6,2,1,7,8,4 | |
5,9,3,6,2,1,8,7,4 | |
6,2,8,3,5,1,7,9,4 | |
6,2,8,3,5,1,9,7,4 | |
6,3,1,9,2,5,7,8,4 | |
6,3,1,9,2,5,8,7,4 | |
6,9,3,5,2,1,7,8,4 | |
6,9,3,5,2,1,8,7,4 | |
7,2,8,9,6,5,1,3,4 | |
7,2,8,9,6,5,3,1,4 | |
7,3,2,8,5,9,1,6,4 | |
7,3,2,8,5,9,6,1,4 | |
7,3,4,1,6,5,2,9,8 | |
7,3,4,1,6,5,9,2,8 | |
7,3,1,5,2,6,8,9,4 | |
7,3,1,5,2,6,9,8,4 | |
7,5,2,8,4,9,1,3,6 | |
7,5,2,8,4,9,3,1,6 | |
7,6,4,8,5,9,1,3,2 | |
7,6,4,8,5,9,3,1,2 | |
7,1,4,9,6,5,2,3,8 | |
7,1,4,9,6,5,3,2,8 | |
7,9,6,1,5,2,4,3,8 | |
7,9,6,1,5,2,3,4,8 | |
8,2,4,3,5,1,7,9,6 | |
8,2,4,3,5,1,9,7,6 | |
8,3,2,7,5,9,1,6,4 | |
8,3,2,7,5,9,6,1,4 | |
8,5,2,7,4,9,3,1,6 | |
8,5,2,7,4,9,1,3,6 | |
8,5,2,1,4,7,3,9,6 | |
8,5,2,1,4,7,9,3,6 | |
8,6,4,7,5,9,3,1,2 | |
8,6,4,7,5,9,1,3,2 | |
8,7,2,5,3,9,1,6,4 | |
8,7,2,5,3,9,6,1,4 | |
8,9,2,3,1,5,7,6,4 | |
8,9,2,3,1,5,6,7,4 | |
9,2,8,7,6,5,3,1,4 | |
9,2,8,7,6,5,1,3,4 | |
9,3,2,1,5,6,7,4,8 | |
9,3,2,1,5,6,4,7,8 | |
9,3,1,6,2,5,7,8,4 | |
9,3,1,6,2,5,8,7,4 | |
9,4,8,5,6,7,3,1,2 | |
9,4,8,5,6,7,1,3,2 | |
9,4,1,5,2,7,8,3,6 | |
9,4,1,5,2,7,3,8,6 | |
9,5,3,1,4,2,7,8,6 | |
9,5,3,1,4,2,8,7,6 | |
9,6,4,3,5,8,7,1,2 | |
9,6,4,3,5,8,1,7,2 | |
9,8,6,2,4,1,7,5,3 | |
9,8,6,2,4,1,5,7,3 | |
9,1,4,7,6,5,3,2,8 | |
9,1,4,7,6,5,2,3,8 | |
9,1,2,5,6,7,4,3,8 | |
9,1,2,5,6,7,3,4,8 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment