Fonction puissance
Discutez d'informatique ici !
-
z^42
- Membre Naturel
- Messages: 60
- Enregistré le: 21 Sep 2014, 14:18
-
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.
-
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;
}
}
-
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 ?
-
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 !
-
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

-
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 !
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité