Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo resolver la programación de Sudoku

Cómo resolver la programación de Sudoku

Se calculan los programas. Sólo existe una única solución a este problema.

Código adicional:

tipo x9

Entero(1)::a

Entero(1)::s(9)

Entero(1)::np

Tipo final

Tipo(x9)::kk(9,9)

Datos kk%a/? &

0, 0, 0, 0, 4, 0, 0, 3.

0, 0, 0, 6, 0, 8, 0, 5, 0.

8, 0, 7, 0, 3, 0, 6, 0, 0.

0, 0, 1, 0, 0, 9, 7, 0.

0, 5, 0, 9, 6, 3, 0, 2, 0.

0, 1, 2, 0, 0, 0, 0, 8.

0, 0, 5, 0, 2, 0, 4, 0, 7.

0, 8, 0, 3, 0, 9, 0, 0, 0 y

1,0,0,4,0,0,0,0, 0 /

kk%np=-kk%a

hacer i=1, 9

hacer j=1, 9

? kk(j,i)%s=0

? Si (kk(j,i)%np.eq.0) entonces

? hacer k=1, 9

hacer il=1, 9

if(kk(il,i)%a.eq.k) salir

Fin hacer

if(il . 1 . 9) bucle

hacer ih=1, 9

if(kk(j,ih)%a.eq. k) Salir

Fin de hacer

Circuito de frecuencia intermedia (menor o igual a 9)

ni=((i+2)/3-1) *3+1

nj=((j+2)/3-1)*3+1

hacer ih=ni, ni+2

hacer il=nj ,nj+2

? if(kk(il,ih)%a.eq.k) salir

Fin do

if(il.le.nj+2) salir

Fin del bucle do

if (es decir, ni+2)

si (es decir, nj+2) bucle

kk(j,i)%s(k) =k

? ¿Finalizar?

? ¿Otros

? kk(j,i)%s(1)=kk(j,i)%a

? Terminará si...

Fin do

Fin do

n=1

kk%a=0

kk%np=0

m=0

hacer mientras(.true)

Salir si (mayor que 81)

i=(n+8)/9

j=n-9*(i-1)

kk(j,i)%np=kk(j, i)% np+1

k=kk(j,i)%np

Si (k > 9), entonces

? Si (n.eq.1) sale

? kk(j,i)%a=0

? n=n-1

? Bucle

¿Otro

? kk(j,i)%a=0

Terminará si...

Si (kk(j,i)%s(k).eq.0) entonces

p>

? Bucle

¿Otro

? ¿ih=1,I

? if(kk(j,ih)% a. eq kk(j,i)%s(k)) salir

? ¿Finalizar?

? ¿Bucle de media frecuencia

? hacer il=1,j

? if(kk(il,I)% a . eq kk(j,i)%s(k)) salir

? ¿Finalizar?

? bucle if(il.le.j)

? ni=((i+2)/3-1)*3+1

? nj=((j+2)/3-1)*3+1

? ¿ih=ni,I

? ¿il=nj, nj+2

if(kk(il,ih)% a . eq kk(j,i)%s(k)) sale

? ¿Finalizar?

? if(il.le.nj+2) salir

? ¿Finalizar?

? if (es decir, nj+2) bucle

? ¿Bucle de media frecuencia

? kk(j,i)%a=kk(j,i)%s(k)

? Si (Ecuación 81), entonces

? m=m+1

? Escribe (*, '(/, 2x, a, i3)') 'buscar = ', m

? hacer jj=1, 9

Escribe (*, '(1x, 9i

2)')kk(1:9,jj)%a

? ¿Finalizar?

? ¿Otros

? n=n+1

? i=(n+8)/9

? j=n-9*(i-1)

? kk(j,i)%np=0

? ¿Bucle

? Si... terminará

Si... terminará

Fin hacer

Fin