// Función iterativa para resolver los distintos casosvoid sudoku_solver_iterative(int sudoku[][9][10], int file, int column){ int sudoku_new[9][9][10]; int i, j, k; // Resuelvo "lógicamente" el sudoku sudoku_solver(sudoku); // Si no lo resolví (tiene 81 lugares) if(sudoku_count(sudoku) != 81) { // Copio el sudoku resuelto a otro array para la iteración sudoku_copy(sudoku, sudoku_new); // Recorro filas for(i=file; i<9; i++) { // Recorro columnas for(j=column; j<9; j++) { // Si la posición está sin resolver y si tiene algún valor en la parte "x10" if( (sudoku_new[i][j][0] == 0) && (sudoku_check_empty_position(sudoku_new, i, j) != 0) ) { // Recorro la parte "x10" for(k=1; k<10; k++) { // Si la posición de "x10" está ocupada y no es igual a la que hay en [i][j][0] if( (sudoku_new[i][j][k] != 0) && (sudoku_new[i][j][0] != sudoku_new[i][j][k]) ) { // Copio ese valor a [i][j][0] sudoku_new[i][j][0] = sudoku_new[i][j][k]; printf("(%d,%d,%d) = %d\n", i+1, j+1, k, sudoku_new[i][j][k]); // La llamo de nuevo a resolver iterativamente sudoku_solver_iterative(sudoku_new, i, j); } } } } } } else { // Resuelto! printf("Solved!\n"); sudoku_print(sudoku); }}
// factorial calculator#include <iostream>using namespace std;long factorial (long a){ if (a > 1) return (a * factorial (a-1)); else return (1);}int main (){ long number; cout << "Please type a number: "; cin >> number; cout << number << "! = " << factorial (number); return 0;}
Porque el sudoku tiene 3 indices? es el nuevo sudoku 3D que todavia no conozco?