Loading [MathJax]/jax/element/mml/optable/MathOperators.js

2 votos

Un número cuando se desplaza un dígito al dividirse por el primer número es igual a 4.

Un número de 4 cifras, por ejemplo 1234, cuando se desplaza circularmente 1 cifra hasta, por ejemplo, 4123, debe ser 4 veces mayor que el número inicial.

He probado este código en MATLAB:

for i = 1000:1:9999
    first = i;
    second = str2double(circshift(num2str(first)',1)');
    if (second/first) == 4
        break;
    end
end

Pero el valor que obtengo de firstnumber es 9999. ¿Hay algún método mejor para encontrar el número? Necesito alguna orientación..

1voto

5xum Puntos 41561

Se obtiene firstnumber igual a 9999 porque no hay 4 -que satisfaga su condición. El código python siguiente imprimiría dicho número si existiera.

for i in range(1000, 10000):
    s = str(i)
    shift = int(s[-1] + s[:-1])
    if shift * 1.0 / i == 4:
        print i
        print shift
        break

1voto

yurnero Puntos 2423

Está buscando 2 números x y y tal que: 1y9 , 100x999 y (y×1000+x)=4(10x+y)996y=39x. Pero 39x es divisible por 13 mientras que 996y no puede ser. Así que hay tales x y y . Es por eso que su bucle se ejecuta en su valor final ( 9999 ).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X