Maison >interface Web >js tutoriel >js exemple de détermination si un nombre est une nième puissance de 2

js exemple de détermination si un nombre est une nième puissance de 2

小云云
小云云original
2017-12-07 16:00:492423parcourir

Méthode 1

Comment déterminer si un nombre est la nième puissance de 2 La façon simple de déterminer est de diviser directement le nombre num par 2. Si le le reste est 0, puis divisez num/2 par 2, puis déterminez si le reste est 0. Si tel est le cas, continuez avec l'étape précédente jusqu'à ce que num=1 à la fin.

Par exemple :

2 2%2=0 (2/2)=1 Il est

4 4%2=0 (4 /2 )%2=0 (4/2/2)=1 Oui

6 6%2=0 (6/2)%2=1 Non

7 7%2= 1 Non

24 24%2=0 (24/2)%2=0 (24/2/2)%2=0 (24/2/2/2)%2=1 Non

Implémentation du code :


function check(num){
 if(num != 1){
  while(num != 1){
   if(num%2 == 0){
    num = num / 2;
   }else{
    return false;
   }

  }
  return true;
 }else{
  return true;
 }
}


Le résultat est le suivant :

Méthode 2

En utilisant la méthode binaire, vous pouvez déterminer si un nombre num est la nième puissance de 2. La règle peut être vue que tant qu'il s'agit d'une puissance de 2, le bit le plus élevé doit être 1 et le reste est 0. Lorsque num-1, le bit le plus élevé est 0 et le reste est 1.

Opération ET au niveau du bit : 1&1 =1 0&1=0 0&0=0 1&0=0

2                                                                                                                                           ---> ---> 111

Exemple : Binaire de

8 1000 8-1 en binaire 0111 Opération ET au niveau du bit 1000&0111 --> la nième puissance. Binaire de 9 1001 Binaire de 9-1 1000 Opération ET au niveau du bit 1001&1000 ---> 1000 Donc 9 n'est pas une puissance de 2.

Le binaire de 24 11000 24-1 Le binaire 10111 Opération ET au niveau du bit 11000&10111 ---> 10000 Donc 24 n'est pas une puissance de 2.

Le binaire de num peut être écrit via num.toString(2).

Implémentation du code :


function check(num){
 return (num > 0) && ((num & (num - 1)) == 0);
}
Les résultats sont les suivants :


L'autre 1 est également 2 élevé à la puissance 0.

Il existe d'autres conditions non écrites. Cette méthode consiste à déterminer si un nombre est la nième puissance de 2. Elle n'écrit pas si le nombre est un nombre entier. Si possible, ajoutez un jugement conditionnel par vous-même.

Recommandations associées :

Comment JS utilise un algorithme glouton pour résoudre le problème de changement

Exemple de méthode d'abréviation JS pour déterminer s'il s'agit d'un chaîne vide Explication détaillée

PHP et JS déterminent si une chaîne est un nombre

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn