Pregunta

Por lo tanto, para un proyecto muy tonta en C ++, estamos haciendo nuestra propia clase entero largo, llamado VLI (Muy Larga Int). El modo de funcionamiento (que se vertebrados, les culpa de la estupidez) es la siguiente:

  1. entradas de usuario de hasta 50 dígitos, que son de entrada como cadena.
  2. cadena se almacena en la clase de secuencia pre-hechos, que almacena la cadena en una matriz, en orden inverso.

Eso significa que, cuando "1234" se de entrada, se almacena como [4 | 3 | 2 | 1].

Por lo tanto, mi pregunta es la siguiente: ¿Cómo puedo ir haciendo división, usando sólo estos conjuntos de caracteres

Si la respuesta de entrada es de más de 32 dígitos, no puedo usar enteros para comprobar si hay cosas, y que básicamente diciendo usando enteros largos aquí es hacer trampa.

Cualquier entrada es bienvenido, y puedo dar más aclaraciones si es necesario, gracias a todos.

¿Fue útil?

Solución

Implementar el algoritmo de la división larga que ha aprendido en la escuela primaria.

inicio mediante la implementación de la resta. Crear una función que puede cadena de restar cualquier número de la entrada. Entonces usted debe ser capaz de detectar si el resultado es negativo. Modificar esta función para que el número que se cambió de cadena antes de resta ...

Otros consejos

Obtener su libro de matemáticas de la escuela a cabo, se hizo la división manual de hace algunos años en la escuela, supongo. Es exactamente el mismo principio:)

Potatoswatter es correcta. Escribí un programa de Pascal en el pasado que trabajó en números de longitud arbitraria como cadenas, y se podía calcular la raíz cuadrada también.

Aquí es un recordatorio de la técnica para la división larga: División largo de decimales

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top