Puissance entre deux entiers de type long

Résolu
axel41 Messages postés 23 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 21 novembre 2009 - 8 mars 2007 à 11:19
axel41 Messages postés 23 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 21 novembre 2009 - 8 mars 2007 à 15:48
Bonjour,
Je cherche une commande qui réalise a^b avec a et b entiers de type Long.
Merci d'avance !
Axel

5 réponses

super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
8 mars 2007 à 15:28
Yop yop !!

au lieu de se prendre la tete avec ces jolis calculs pourquoi ne pas faire plutot :
int res = (int )Math.pow(2,0);
ou si tu veux des doubles
double res = Math.pow(2,0);

Ca sert à ca la classe Math !!!
++ Toinou
3
mouzart Messages postés 161 Date d'inscription mardi 26 avril 2005 Statut Membre Dernière intervention 6 novembre 2008 4
8 mars 2007 à 12:06
slt,
    Pour les entiers il y pas de soucis on est bien d accord ;-).
    Sinon pour les reels positif on a :
     ln (a^b) = b*ln(a)
     et exp(ln(a^b)) = exp(b*ln(a))
alors a^b=exp (b*ln(a))
   Voila c est facile il faut etre un peu matheu.

(ln: logarithme neeperien et exp exponentiel...)

Allez bon courage.
tu peux t en sortir comme ca.
Abdelilah
0
axel41 Messages postés 23 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 21 novembre 2009
8 mars 2007 à 12:28
J'essayais avec a^b mais ca ne marchais pas... Ta réponse m'a incité à revérifier et je viens de voir que j'avais une erreur de type (int et long) !
En tout cas, merci bien pour l'astuce ca peut s'avérer très pratique ;)
++
0
axel41 Messages postés 23 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 21 novembre 2009
8 mars 2007 à 14:15
Je retire ce que j'ai dit...
Vu que mon programme ne marchait toujours pas malgré plusieurs changements de syntaxe, j'ai décidé de faire un petit programme test pour vérifier si le problème venait du a^b.
Voici le programme test :

public static void test() {
        long a,b,c,d;
        a = 2^1;
        b = 2^2;
        c = 2^3;
        d = 2^0;
        System.out.println(a+" "+b+" "+c+" "+d);
    }

et voici le résultat :

init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\Axel\Mes documents\Axel\Mes documents\Autre\Java\TP-I3\build\classes
compile:
run:
3 0 1 2
BUILD SUCCESSFUL (total time: 1 second)

Alors, voila, je viens d'apprendre que 2^0 =2 ; 2^1=3 ; 2^2=0 et 2^3=1
Quelqu'un peut m'expliquer ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
axel41 Messages postés 23 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 21 novembre 2009
8 mars 2007 à 15:48
Merci pour cette commande, c'est pile ce que je cherchais !
0
Rejoignez-nous