J'essaie de résoudre l'un des problèmes de codewars. Le problème est comme ci-dessous:Problèmes avec l'affichage de grands nombres en javascript
En mathématiques, les nombres de Fibonacci sont dans la séquence entière suivante, appelée la suite de Fibonacci, et caractérisé par le fait que chaque nombre y est la somme des deux précédents:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... Implémenter la fonction getFibonacci (n) qui retournera la représentation sous forme de chaîne du nombre sur la position n de la séquence de Fibonacci . J'ai élaboré mes codes, mais mon code ne peut dépasser le test que lorsque les nombres testés sont petits et a échoué à tous les tests lorsque de grands nombres impliqués et recevant le message d'erreur "Attendu: '30010821454963453907530667147829489881', a obtenu: ' 3.001082145496346e + 37 '". En outre, j'ai essayé d'ajouter toNotExponential() ou expandExponential() à la fin de mon déclaration de retour pour aider à montrer le nombre entier, cependant, soit le code fonctionne que je reçois des erreurs en disant "toNotExponential() n'est pas un function "ou" expandExponential() n'est pas une fonction ". Vous ne savez pas quoi faire, s'il vous plaît aider. Mon code comme ci-dessous ...
function getFibonacci(n) {
var arr= [1,1];
var len = arr.length;
while(len<n){
arr.push(arr[len-1]+arr[len-2]);
len++;
}
return (arr[len-1]+"").toNotExponential();
}
Jetez un oeil à [cette question] (https://stackoverflow.com/questions/1685680/how-to-avoid-scientific-notation-for-large-numbers-in-javascript) – lztachyon
Pour les numéros supérieurs à [ * Number.MAX_SAFE_INTEGER *] (http://ecma-international.org/ecma-262/8.0/#sec-number.max_safe_integer) '9007199254740991' vous devrez utiliser une bibliothèque, ou en écrire une vous-même. Voir [* Javascript additionnant les grands entiers *] (https://stackoverflow.com/questions/4557509/javascript-summing-large-integers) pour des suggestions. BTW, il n'y a pas de type 'int' en javascript, il y a juste des nombres. – RobG
Vous pouvez stocker le nombre sous forme de chaîne, et utiliser des milliers comme délimiteur, où la longueur du nombre est déterminée par le maximum possible '.length' d'une chaîne, sans utiliser E-notation, voir [Comment ajouter 1 à un grand entier représenté sous forme de chaîne en JavaScript?] (https://stackoverflow.com/questions/43614407/how-do-i-add-1-to-a-big-integer-represented-as-a-string -in-javascript /) – guest271314