Programme Javascript pour imprimer un numéro de série dans le sens inverse
Je ne comprends pas pourquoi le programme JavaScript ci-dessous renvoie la réponse de l'Infini. Ce que je fais mal? Je suis un novice, et qu'il souhaiterait une explication détaillée!
Veuillez noter que ce qui doit être accompli à l'aide des mathématiques et mathématiques des fonctions, pas de fonctions de chaînes de caractères ou des tableaux!
<script type = "text/javascript">
var input;
var rev = 0;
input=window.prompt ("Please enter a 5-digit number to be reversed.");
input = input * 1;
while (input > 0)
{
rev *= 10;
rev += input % 10;
input /= 10;
}
document.write ("Reversed number: " + rev);
</script>
- Vous semblez avoir une réponse déjà, donc il n'y a probablement pas de point de poster ailleurs, mais pour une référence future: ce site est pour les puzzles dans le sens de jeux. Pour les puzzles dans le sens de bugs que vous ne comprenez pas, le principal site StackOverflow est le plus approprié.
- Il peut (et doit) être toujours migré à sa bonne place.
- sauf que la place n'est pas une option dans les cibles de migration. La seule option est de meta.codegolf, pour une raison quelconque.
- Laissez faire les mods. Ils peuvent faire des choses qu'on ne peut jamais demander.
- J'ai commencé une thread sur meta
Vous devez vous connecter pour publier un commentaire.
Votre ligne:
input /= 10;
ne risque pas d'entraîner un nombre entier.Vous vous retrouvez avec une séquence comme ceci:
Ce n'est jamais arrivé à 0, de sorte que votre condition du while continue jusqu'à ce qu'il atteigne 1e-323, le nombre pistes de précision et passe à 0.
Si vous remplacez le
input /= 10;
ligne avecinput = Math.floor(input/10);
, alors il fonctionne.Parce que c'est le code de golf, vous ne voulez probablement pas à utiliser les Mathématiques.sol si. Il y a un plus petit, je vais voir si je peux le retrouver.
Vous pouvez utiliser
input = ~~(input/10);
fourniinput
est toujours positif.