Programación en lenguaje C para realizar vertical y horizontal.
void main()
{
int a[16][16], I, j, k, p, m , n;
p = 1;
mientras(p==1)
{printf("Por favor ingrese n. (0
<) p>scanf("d ", ampn);if ((n gt= 0) amp; amp(n lt= 15); amp(n2!=0))
{printf("El orden de la matriz es: d\n ", n
p = 0
}
}
<; p >for(I = 1;i lt= n;i)for(j = 1;j lt= n;j)
a[I][j]= 0 ;
/*Construir una matriz de cubo de Rubik*/
j = n/2 1;
a[1][j]= 1;
for(k = 2;k lt= n * nk)
{ I = I-1;
j = j 1;
if ((i lt1); amp(j gtn))
{ I = I 2;
j = j-1;
}
Otros
{ if(I lt; 1)I = n;
if(j gt; n)j = 1; >}
if(a[i][j]==0)
a[I][j]= k;
Otros
{ I = I 2;
j = j-1;
a[I][j]= k
} p>
}
/*Salida*/
for(I = 1; i lt= n; i)
{ for(j = 1; j lt= n; j )
printf(" 3d ", a[I][j]);
}
}
Un cubo de Rubik que puede realizar enésimo orden
La idea de este método es la siguiente
La disposición de los números en la matriz del Cubo de Rubik es la siguiente:
1. Coloque "1" en la columna central de la primera fila
2. a n*n se almacenan en secuencia de acuerdo con las siguientes reglas: cada El número de filas almacenadas en el número es mayor que el número anterior
El número de filas se reduce en 1 y el número de. las columnas aumentan en 1;
3. Si el número de filas del número anterior es 1, entonces el siguiente número es 1. El número de filas de un número es n (refiriéndose a la última fila). ;
4. Cuando el número de columnas del número anterior es n, el número de columnas del siguiente número debe ser 1 y el número de filas debe reducirse en 1;
>4.p>
5. Si hay un número en la posición determinada de acuerdo con las reglas anteriores, o el número anterior es la enésima columna de la fila 1, entonces tome el siguiente número.
Este número se encuentra debajo del número anterior.
Hermano, puedes obtener todas las matrices disponibles en horizontal, vertical y diagonal, pero la pantalla no puede mostrarlas todas. Hermano, puedes agregarme Q114356819 para decirte que tu programa puede ingresar n. Puedes probarlo tú mismo.