Maison  >  Article  >  interface Web  >  Générer la première n séquence de nombres vus et prononcés en JavaScript

Générer la première n séquence de nombres vus et prononcés en JavaScript

WBOY
WBOYavant
2023-09-15 23:57:021316parcourir

在 JavaScript 中生成前 n 个看和说数字的序列

Question

En mathématiques, une séquence "regarder et dire" est une séquence d'entiers qui commence comme suit -

1, 11, 21, 1211, 111221, 312211, …

Pour générer un membre d'une séquence à partir du membre précédent, nous lisons le nombre du membre précédent et calculez le même nombre de chiffres dans le groupe de chiffres.

Par exemple, le nombre suivant 1211 est -

111221

Parce que si nous lisions le nombre 1211 à voix haute, ce serait -

One one, one two, two one which gives us 111221

Nous devons écrire une fonction JavaScript qui accepte le nombre n et renvoie "regardez le look et say" Les n premiers éléments de la séquence.

Exemple

Ce qui suit est le code-

Démonstration en direct

const num = 12;
const generateSequence = (num = 1) => {
   const lookAndSay = (val) => {
      let res = '';
      let chars = (val + ' ').split('');
      let last = chars[0];
      let count = 0;
      chars.forEach(c => {
         if(c === last){
            count++;
         }else{
            res += (count + '') + last;
            last = c;
            count = 1;
         };
      });
      return res;
   }
   let start = 1;
   const res = [];
   for(let i = 0; i < num; i++){
      res.push(String(start));
      start = lookAndSay(start);
   };
   return res;
};
console.log(generateSequence(num));

Sortie

Ce qui suit est la sortie de la console-

[
   &#39;1&#39;,
   &#39;11&#39;,
   &#39;21&#39;,
   &#39;1211&#39;,
   &#39;111221&#39;,
   &#39;312211&#39;,
   &#39;13112221&#39;,
   &#39;1113213211&#39;,
   &#39;31131211131221&#39;,
   &#39;13211311123113112211&#39;,
   &#39;11131221133112132113212221&#39;,
   &#39;3113112221232112111312211312113211&#39;
]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer