En C #, ¿cómo podemos dividir un número BigInteger en otros dos números BigInteger?

Como una solución alternativa a la respuesta del usuario de Quora,

  1. Encuentre el número de dígitos usando el método ToString y la propiedad Length . Para 1234, devuelve 4, para 12345, devuelve 5.
  2. Divídalo por 2. Para ambos casos, devuelve 2 debido a la división de enteros. Y obtener 10 elevado a este valor que hace 100 en esos casos.
  3. Para obtener y , divida (vea: 7.7.2 Operador de división) sus valores a 100 como 1234 / 100 . Para 1234, devuelve 12. Para 12345, devuelve 123.
  4. Para obtener z , use la operación de módulo (consulte:% Operador (Referencia de C #)) como 1234 % 100 . Para 1234, devuelve 34. Para 12345, devuelve 45.

Por supuesto, esto no es exactamente diferente de la respuesta de Clyde, pero al menos es un enfoque diferente.

int x = 1234;
int totalNumOfDigits = (int) Math.Floor (Math.Log10 (x));
int numOfDigitsToTheRight = (int) Math.Ceiling (totalNumOfDigits / 2.0);

int y = (int) Math.Round (x / Math.Pow (10.0, numOfDigitsToTheRight));
int z = (x – y) / (int) Math.Pow (10.0, numOfDigitsToTheRight);

o quizás,

int i = 1234;
cadena sI = i.ToString ();
int totalNumOfDigits = sI.Length;
int numOfDigitsToTheRight = (int) Math.Ceiling (totalNumOfDigits / 2.0);

int y = Convert.ToInt32 (sI.Substring (numOfDigitsToTheRight));
int z = Convert.ToInt32 (sI.Substring (0, numOfDigitsToTheRight – 1));

No deberia

BigInteger z, divisor;
// mumbojumbo para establecer el divisor en un factor de 10 (en función de cuántos dígitos desea tener en z)
y = BigInteger.DivRem (x, divisor, out z);

¿Haz el truco?

Si x == 1234, no puede “dividirlo” en 12 y 34 … porque no son 12 y 34.

Si x == ”1234 ″, simplemente divídalo en 2 cadenas de 2 caracteres cada una.

Los números no son cadenas y las cadenas no son números. El hecho de que usemos los mismos caracteres para representar 1234 y “1234” no los hace iguales, no más de 1234 y “abcd” son lo mismo. (Por cierto, el valor de “1234” es 0. El valor de 1234 es 1.234).

Le sugiero que aprenda a escribir variables.

More Interesting

¿Cuál es el algoritmo de esta pregunta de Hacker-Rank?

¿Desde dónde puedo aprender estructuras de datos en Bhopal?

¿Cuáles son ejemplos de la secuencia de Fibonacci en el campo de la ciencia y las artes liberales (economía, sociología, incluso historia, etc.)?

¿Por qué encontrar el trabajo múltiple menos común?

¿Es posible codificar un programa que, dada una secuencia finita, encuentra al menos 2 reglas posibles que generan las series restantes?

Te dan n pilas con p monedas, y cada jugador elimina al menos 1 moneda. El número de monedas eliminadas por un jugador no puede ser eliminado por el otro. ¿Quién ganará?

¿Cómo pruebo que no existen estados recurrentes nulos en un estado finito DTMC (cadena de Markov de tiempo discreto)?

¿Cuál es la ventaja de buscar en una lista ordenada en lugar de en una lista no ordenada?

¿Cuál es el algoritmo de fuerza bruta O (n!) Para calcular las rutas más largas?

¿Cuál es una buena estructura de datos para mapear una red de carreteras?

¿Qué libro sobre algoritmos es una lectura obligada para un programador?

Si un algoritmo se ejecuta en tiempo O (N), pero N no excede una constante, ¿puedo decir que el algoritmo se ejecuta en tiempo constante?

Cómo implementar prácticamente algoritmos enseñados por Andrew Ng en su curso de aprendizaje automático

¿Cuál es el elemento más pequeño / más grande en el código Java?

¿Por qué deberíamos conocer más de un algoritmo de clasificación en Python (burbuja, inserción, selección) si todos están haciendo el mismo trabajo?