[ 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 (+83)

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.






Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...