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 de8 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); }
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 changementPHP 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!