Red de conocimiento informático - Conocimiento de la instalación - Para encontrar números isomórficos hasta 1000, use el lenguaje C más simple

Para encontrar números isomórficos hasta 1000, use el lenguaje C más simple

El siguiente es un programa en lenguaje C para resolver números isomorfos hasta 1000:

```c

#include

// Determinar si dos números son isomorfos

int isIsomorphic(int a, int b) {

int a_digits[10] = {0}; de apariciones de cada dígito en el número a

int b_digits[10] = {0}; // Almacena el número de apariciones de cada dígito en el número b

while (a != 0 && b != 0) {

a_digits[a % 10]++; // Cuenta el número de apariciones de cada dígito en el número a

b_digits[b % 10 ] ++; // Cuenta el número de apariciones de cada dígito en el número b

a /= 10;

b /= 10;

}

// Compara si el número de apariciones de cada dígito en los números a y b es igual

for (int i = 0; i < 10; i++) {

if (a_digits[i] != b_digits[i]) {

return 0; // Si no son iguales, no son números isomorfos y devuelve 0

}

}

return 1; // De lo contrario es un número isomorfo, devuelve 1

}

int main() {

printf("Los números isomorfos dentro de 1000 son:\n");

for (int i = 1; i <= 1000; i++) {

for ( int j = i + 1; j <= 1000; j++) {

if (isIsomorphic(i, j)) {

printf("%d y %d\n" , i, j);

}

}

}

devuelve 0;

}

```

En el código anterior, primero definimos una función `isIsomorphic()`, que acepta dos números enteros como parámetros y devuelve un valor entero que indica si los dos números son isomorfos. número. Dentro de la función, usamos dos matrices `a_digits` y `b_digits` para registrar el número de apariciones de cada dígito en los dos números. Específicamente, usamos `a % 10` y `b % 10` para obtener los dígitos individuales de los números a y b y agregar uno a sus correspondientes elementos de matriz. Luego dividimos los números a y b entre 10 cada uno, eliminamos los dígitos individuales y repetimos hasta que ambos tengan valores cero.

En la fase de comparación, comparamos cada elemento en las matrices `a_digits` y `b_digits` uno por uno. Si no son iguales, significa que los dos números no son isomorfos y de lo contrario devuelven 0; , Son números isomorfos y se devuelve 1.

En la función `main()`, usamos dos bucles para enumerar todos los pares posibles de números enteros y llamamos a la función `isIsomorphic()` para determinar si son números isomórficos.

Si es un número homogéneo, se envía a la consola.

Cabe señalar que en las aplicaciones reales, también se deben considerar cuestiones como la complejidad del algoritmo y la optimización del rendimiento para garantizar la eficiencia y corrección del programa.