c programme pour vérifier valide sudoku
je suis en train d'écrire du code c pour vérifier si la matrice est valable sudoku solution ou pas.
L'entrée serait la matrice de n*n de taille.
J'ai écrit du code pour vérifier de ligne et de colonne, mais je ne suis pas en mesure de valider les grilles de sqrt(n)*sqrt(n) de taille.
mon code est ici
#include<stdio.h>
int main()
{
int i,j,count=0,sumrow;
int sumcol;
int n;
scanf("%d",&n);
int arr[n+1][n+1];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&arr[i][j]);
for(i=1;i<=n;i++)
{
sumcol=0;
for(j=1;j<=n;j++)
sumcol+=arr[j][i];
if(sumcol!=(n*(n+1)/2))
count++;
}
for(i=1;i<=n;i++)
{
sumrow=0;
for(j=1;j<=n;j++)
{
sumrow+=arr[i][j];
}
// printf("%d\n",sumrow);
if(sumrow!=(n*(n+1)/2))
count++;
}
//printf("count%d ",count);
if(count==0)
printf("yes");
else
printf("no");
return 0;
}
- Quelle est votre question?
- je ne suis pas en mesure de valider les sous-grilles de sudoku. par exemple, pour les 9*9 sudoku nous avons 3*3 est de 9 grilles.
- En C, nous compter à partir de 0 et non de 1. Vos boucles doivent être "code" for(i=0;i<n;i++)
- j'ai alloué tableau de n+1 à n+1 taille
Vous devez vous connecter pour publier un commentaire.
Ici, j'ai une meilleure solution. Au lieu de la somme, nous pouvons utiliser un indicateur de nombre entier.
Pour une description détaillée, Vous pouvez visitez ce lien
Vous pouvez vérifier chacun des petits carrés de savoir si elles sont valables ou pas.Par exemple, si
n=9
vous devez vérifier chaque3 by 3
carrés.Pour vérifier chaque petit carré, vous pouvez utiliser un tableau de 10 éléments et vérifiez si l'un des1 to 9
valeur est répétée ou non.L'algorithme est le suivant
Voici un peu de code pour faire la même chose
Noter que le code ci-dessus suppose que l'ensemble de la grille est remplie et n'est pas vide.Si vous voulez vérifier une grille partiellement remplie,introduire un chèque.
used[A[p][q]-'0'-1]