Si puedes hacer comparaciones, entonces puedes manejar esto con una precisión arbitraria.
Que los dos números sean a y b y usted está tratando de calcular b÷a . Si a=0 La división es ilegal, y estás acabado. Si b=0 el cociente es 0 y ya está.
Si no, cuenta cuántas veces puedes añadir a a sí mismo antes de alcanzar o superar b . Asegúrate de llevar la cuenta de las sumas en curso. Si llegas a b exactamente, se trata del cociente de enteros q exactamente, y ya está.
En caso contrario, uno menos que el recuento es q la parte entera del cociente, y la penúltima suma fue qa . Ahora multiplique tanto esto como b por 10 , por lo que ahora está comparando 10qa y 10b . De nuevo, añada a a la primera hasta alcanzar o superar 10b . Si llega a 10b exactamente, entonces el recuento es r1 , el primer y el último dígito decimal del cociente, y ya está.
Por lo demás, r1 es uno menos que la cuenta. Si has llevado la cuenta de las sumas en curso, la suma anterior será (10q+r1)a . Multiplique esto y 10b por 10 Así que ahora estás comparando (100q+10r1)a y 100b . De nuevo, añada a a la primera hasta alcanzar o superar 100b que le permitirá determinar r2 el segundo dígito de la parte decimal del cociente. Confío en que puedas seguir con esto.
Ejemplo. Dejemos que a=4 y b=19 . Podemos añadir a=4 a sí mismo 5 veces para superar b=19 , por lo que uno menos que eso es q=4 la parte entera del cociente.
La suma anterior era qa=16 . Multiplique esto y b por 10 para conseguir 10qa=160 y 10b=190 . Podemos añadir a=4 a 10qa=160 un total de 8 veces antes de superar 10b=190 , por lo que uno menos que eso es r1=7 el primer dígito de la parte decimal del cociente.
La suma anterior era 10qa+r1a=188 Así que multiplicamos esto y 190 por 10 para conseguir 1880 y 1900 . Podemos añadir a=4 un total de 5 veces a la 1880 para alcanzar 1900 exactamente, así que r2=5 es el segundo y último dígito de la parte decimal del cociente.
4 votos
¿Qué diablos significa esto? ¿Qué tal multiplicar por el recíproco? Definitivamente, las reglas de este "juego" no están bien definidas.
0 votos
@Frpzzd Perdón, si mi pregunta no está tan bien definida. Básicamente, lo único que puedo hacer es sumar y/o multiplicar dos números. No puedo multiplicar por el recíproco ya que para eso, necesitaría realizar la división primero también.
0 votos
¿Cuáles son sus dos números?
0 votos
¿Sólo trabajamos con números enteros?
0 votos
@Frpzzd Básicamente, dos números cualquiera.
0 votos
@krirkrirk No, lamentablemente no. Por la naturaleza del sistema con el que estoy trabajando, tenemos que tratar con números de punto flotante.
2 votos
Para calcular x=1/p se puede comenzar con una conjetura inicial x=x0 y luego calcular las aproximaciones sucesivas xn utilizando la recursión: xn+1=2xn−px2n
0 votos
@CountIblis ¡Muchas gracias!
0 votos
@CountIblis: Pero eso utiliza la sustracción, que es lo que barrunta la pregunta, ¿no?
0 votos
@StuntHacks: Tendrás que ser aún más claro en tu pregunta, sobre qué operaciones están permitidas. La respuesta de Lucozade, por ejemplo, utiliza complementos de dígitos, lo que podría ser permisible para ti, o no.
0 votos
" Pero eso utiliza la sustracción " La sustracción no es más que la suma por el inverso aditivo. Si se permite la multiplicación y si (−1) es un número válido, entonces a−b=a+(−1)×b puede expresarse utilizando sólo la suma y la multiplicación.
0 votos
@JMoravitz: Pero dice que no puede usar la resta, debe haber algo que la distinga en su problema.
0 votos
Sí, lamentablemente el sistema con el que trabajo no admite números negativos (en este caso). Debería haberlo especificado, probablemente.