Fonction puissance

Discutez d'informatique ici !
z^42
Membre Naturel
Messages: 60
Enregistré le: 21 Sep 2014, 14:18

Fonction puissance

par z^42 » 13 Oct 2014, 12:39

Bonjour,

Je bloque dans cet exercice, je sais qu'une fonction carré et cube c'est juste x*x e x*x*x.
Mais la puissance je ne vois pas comment faire.
Pouvez vous me donner des pistes.

Ecrire une fonction "int power (int n)" qui retourne la valeur x^n

Merci d'avance

Bonne journée.



Avatar de l’utilisateur
messinmaisoui
Habitué(e)
Messages: 1897
Enregistré le: 24 Oct 2007, 13:52
Localisation: Moselle (57)

par messinmaisoui » 13 Oct 2014, 12:48

Une façon de faire ...

Code: Tout sélectionner
pour n> 2   
De i=1 à n-1 faire x= x * ...
Mon avatar me fait peur, est-ce normal docteur ?

z^42
Membre Naturel
Messages: 60
Enregistré le: 21 Sep 2014, 14:18

par z^42 » 13 Oct 2014, 12:59

Merci pour ton message

J'ai essayé ceci:

Code: Tout sélectionner
int puiss(int x,int n)
{
    int i;
    int res=1;
    for (i=0; i<=n; i++)
    {
        res=res*x;
    }
}

Avatar de l’utilisateur
messinmaisoui
Habitué(e)
Messages: 1897
Enregistré le: 24 Oct 2007, 13:52
Localisation: Moselle (57)

par messinmaisoui » 13 Oct 2014, 13:08

Par exemple ... :lol3:
Mon avatar me fait peur, est-ce normal docteur ?

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 13 Oct 2014, 15:00

z^42 a écrit:Merci pour ton message

J'ai essayé ceci:

Code: Tout sélectionner
int puiss(int x,int n)
{
    int i;
    int res=1;
    for (i=0; i<=n; i++)
    {
        res=res*x;
    }
}



C'est bien mais pas complet ;)

Il y a le cas X^0 = 1 que tu ne traites pas.
Ainsi que le cas qui peut être ambigu dans l'algo 0^0.



J'aurais plutôt fait

Code: Tout sélectionner
int puiss(int x,int n)
{
    int i;
    int res=1;
   if(x==0) then {return 0};
   else
   {
        if(n==0) then {return 1};
        else
       {
                        for (i=0; i<=n; i++)
                       {
                          res=res*x;
                       }
                       return res;
       }
}
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 13 Oct 2014, 18:12

Il y a le cas X^0 = 1 que tu ne traites pas.

en fait si il est traité, mais les conditions d'arrêt sont pas bonnes...
Code: Tout sélectionner
res = 1
for(int i=0; i < n; ++i){//noter le <n
 res*=x; //on multiplie res n fois par x pour x^n
}

evidemment, si n = 0, on ne multiplie pas res et la valeur retournée est bien 1.

Dans le cas où x vaut 0, ca dépend des gouts.
Si on veut 0^0 == 0, alors on garde ta condition si x = 0 retourne 0,
si on veut 0^0 = 1, alors on garde la condition si x==0 && n!=0
la vie est une fête :)

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 13 Oct 2014, 18:37

0^0 ça fait pas 0 par convention ?

C'est vrai que c'est ambigu ça...

0^n = 0

Mais n^0 = 1

M'enfin je trouve ça bizarre qu'en dise que 0 à la puissance 0 fasse 1; quoi que l'on fasse comme multiplication sur un 0 il restera toujours 0 dans ma tête x)
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite