6
votes

Comment trouver K Premiers chiffres de la représentation décimale de 1 / N

Ceci est une question d'entrevue que j'ai rencontrée: trouvez k premier chiffres de la représentation décimale de 1/1 . On dirait que nous n'avons besoin que de calculer 10 ^ k / n pour résoudre le problème. Est-ce que ça fait du sens ? On dirait que je manque quelque chose parce que la solution est trop facile.


8 commentaires

cela ne fonctionnerait pas parce que 1/8 == .125. Si k == 2 puis 10 ^ 2/8 = 12,5, ce qui n'aide pas. La réponse que vous voudriez avoir 25 ans, n'est-ce pas? Peut-être que je vois ce faux?


Les 3 derniers? ou les 3 premiers? ... J'espère que vous savez qu'il y a des chiffres avec la représentation qui ont des chiffres infinis ... 1/3, 1/9


Pardon. Je voulais dire k premiers chiffres. Je corrige la question.


@Ani oui je sais que; Mon point était que la solution proposée n'a pas vraiment raison.


Michael - Si cela concerne les premiers chiffres K, alors n'est-il pas simple pour le souci de division plus facile de multiplier le numérateur de 10 ^ k et de prendre les chiffres? Ce qui finira par faire pour la réponse est diviser par 10 ^ k à nouveau pour que la multiplication précédente annule.


@Pointy: Peu importe tout compte; L'OP a changé la question. :)


Pour l'exhaustivité, j'ajouterais un plancher () .


Suggestion pour quelqu'un qui écrit une réponse: Google.com/search?q =% 22Reciprocal + Estimation% 22 + algorithme


3 Réponses :


1
votes

Si ce sont les premiers chiffres K, n'est-ce pas très simple de multiplier le numérateur de 10 ^ k et il devient donc plus facile de diviser par N? Et si nous avons besoin de la réponse, la représentation décimale qui est que nous finirons alors de diviser le résultat de 10 ^ k à nouveau de sorte que la multiplication précédente annule.


1 commentaires

@ user470379, OP avait un peu de confusion dans sa question. S'il en ait juste besoin de premiers chiffres K, il est très simple à la suite de la commodité.



4
votes

Calculer 10 ^ k / N peut être extrêmement coûteux avec les grands K et les petits n.

Ceci est probablement plus proche d'une bonne solution: Division longue . C'est ainsi que nous avions l'habitude de diviser les nombres avant les calculatrices. :)

Évidemment, vous ne devez effectuer que cet algorithme jusqu'à ce qu'il donne des chiffres k.


0 commentaires

6
votes

Il suffit d'implémenter une division longue de niveau scolaire: xxx

la succursale sur valeur == 0 est de détecter quand 1/1 a une représentation de terminaison de moins de k chiffres.

ici, n est le dénominateur dans 1/1 et < Code> k est le nombre de chiffres à imprimer dans la représentation décimale de 1 / n .

Notez que en modifiant valeur * = 10 à valeur * = b Vous pouvez imprimer la représentation B-ary de 1/1 aussi.


0 commentaires