[ Foro de C ]

Enteros grandes

05-May-2023 15:59
Invitado (estudiante.)
2 Respuestas

Hola, necesito hacer un código en c, que pida dos numero de hasta 50 dígitos y una operación a realizar. La operación puede ser suma, resta o multiplicación. El problema es que no sabría como implementarlo, si sería haciendo operaciones sobre los bits de cada número.


05-May-2023 16:27
Nacho Cabanes (+84)

Tendrías que leerlos como cadenas de texto y sumar letra a letra, como harías en papel.


16-May-2023 20:12
yivekan yivekan

Si deseas hacer un código en C que solicite dos números de hasta 50 dígitos y una operación (suma, resta o multiplicación), puedo ayudarte a entender cómo implementarlo.

En lugar de operar directamente sobre los bits de los números, puedes utilizar librerías o enfoques que manejen números grandes. Una opción común es utilizar arreglos o estructuras de datos que puedan almacenar los dígitos de los números de manera individual.

Aquí hay un ejemplo básico de cómo podrías abordar este problema:

Define dos arreglos de caracteres para almacenar los números ingresados. Asegúrate de tener suficiente espacio para hasta 50 dígitos.

Solicita al usuario que ingrese los dos números y la operación deseada (suma, resta o multiplicación).

Implementa una función para cada operación que realice la operación correspondiente utilizando los dígitos de los números. Puedes realizar la suma, resta o multiplicación en base a la aritmética básica, considerando el acarreo y el manejo de los dígitos.

Llama a la función correspondiente según la operación seleccionada por el usuario y muestra el resultado obtenido.

Recuerda que este es solo un enfoque básico y puede haber otras formas más eficientes o especializadas de trabajar con números grandes en C. También ten en cuenta que el manejo de errores y validaciones adicionales (como verificar que los números sean válidos) puede ser necesario.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)