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

小云云
Libérer: 2017-12-07 16:00:49
original
2424 Les gens l'ont consulté

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;
 }
}
Copier après la connexion


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);
}
Copier après la connexion
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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal