Bonjour,
Je veux un programme "java“ qui calculé est Ce que un nombre Ecrire ce forme 2 puissance n
exemple :
16 ---> 2 puissance 4
16---> (2)4
Merci
Bonjour,
Je veux un programme "java“ qui calculé est Ce que un nombre Ecrire ce forme 2 puissance n
exemple :
16 ---> 2 puissance 4
16---> (2)4
Merci
Hello,
À ma connaissance il n'y a pas de méthode directe pour savoir ça, mais ça se programme très facilement. Il y a plusieurs approches.
- Il y a la méthode théorique :
Vérifier que le reste de la division par 2 est bien 0, puis faire la division par deux, et recommencer jusqu'à tomber sur 1. Garder le nombre de fois qu'on a fait ça, et on obtient la puissance de 2 du nombre de départ.
- La méthode par élimination :
En int (ou en long,) on ne peut représenter que 30 (ou 62) puissances de 2 positives. Pour chacune d'elles, essayer si le nombre est égal à elle. Par exemple partir de 2 et multiplier par deux à chaque fois.
- Et la méthode d'arithmétique binaire :
Une puissance de 2, c'est un entier qui contient exactement 1 bit à 1, et tous les autres bits à zéro. Il suffit de compter le nombre de bits à 1. Et s'il y en a bien un seul, il suffit de regarder lequel pour connaître la puissance en question.
Bonjour,
Vous pouvez essayer cette solution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.Scanner; public class Exemple1 { public static void main(String[] args) { int n,s=0; Scanner scn = new Scanner(System.in); System.out.println("Faites entrer la valeur de x :"); int x = scn.nextInt(); if (x%2!=0){ System.out.println("On ne peut pas mettre "+x+" sous la forme de 2 exposant !"); System.exit(1);} else do{ n=x/2; x=n; s++; } while (n!=1); System.out.println("Le résultat est 2 exposant "+s); } }
D'après ce programme, 10 c'est 2 puissance 3.
Sauf erreur de ma part, 2 puissance 3 ça vaut 8 et seulement 8.
Et ca ne considère pas le cas 1 = 2^0 non plus. ;-)
En partant du code de Farouk_T, voici
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 import java.util.Scanner; public class Exemple1 { public static void main(String[] args) { int s=0; Scanner scn = new Scanner(System.in); System.out.println("Faites entrer la valeur de x :"); int x = scn.nextInt(); while (x!=1){ if (x%2!=0 && x!=1 ){ System.out.println("On ne peut pas mettre "+x+" sous la forme de 2 exposant !"); System.exit(1); } x=x/2; s++; } System.out.println("Le résultat est 2 exposant "+s); } }
Partager