Creer une fonction

Résolu
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012 - 31 juil. 2004 à 20:55
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012 - 1 août 2004 à 13:28
Hello...

J'ai un peu de mal pour créé une fonction qui consite enceci :

je donne en argument a cette fonction un int

Exemple

$int = 4356;

la fonction doit faire le calcule 4+3+5+6 et me retourné donc 18

Apres plusieurs essays buggé je déséspère meme si cela parai simple :\

MErci d'avance :)

----------------------------------------------------

Site en developpement : www.diablus.com

7 réponses

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
1 août 2004 à 08:58
Salut!
Je me rapelle pas de ton pseudo.. Dsl

function sum($nb)
{
$result = 0;

while($nb > 10)
{
$reste = $nb % 10;
$result += $reste;
$nb = ($nb - $reste) / 10;
}

$result += $nb;

if($result > 10)
return sum($result);
else
return  $result;
}

On utilise par strlen car si strlen($result) == 1 on sait que le $result < 10 (aucun formatage)...

C'est bon pour le code ou tu veux des explications?

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
3
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
31 juil. 2004 à 22:52
Salut!
function sum($nb)
{
$result = 0;
if($nb < 10)
return $nb;

while($nb > 10)
{
$reste = $nb % 10;
$result += $reste;
$nb = ($nb - $reste) / 10;
}

return ($result + $nb);
}


@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
31 juil. 2004 à 22:54
Salut!
En fait, tu peux enlever un tit bout, ;-)

function sum($nb)
{
$result = 0;

while($nb > 10)
{
$reste = $nb % 10;
$result += $reste;
$nb = ($nb - $reste) / 10;
}

return ($result + $nb);
}


@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
31 juil. 2004 à 23:05
merci énormémenet, tu viens de résoudre 3 jours de galère ;). J'aimerai quand meme que tu m'expliques pour le calcule car je ne comprend pas :\ Merci encore!

----------------------------------------------------

Site en developpement : www.diablus.com
0

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

Posez votre question
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
31 juil. 2004 à 23:06
Dit ton site je l'ai déja vu. On a du se croisé sur le chat. Mon pseudo c Creatix ;)
----------------------------------------------------

Site en developpement : www.diablus.com
0
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
31 juil. 2004 à 23:29
Aie! ta fonction est parfaite! mais j'ai oublié de précisé un truc...

Par exemple la j'ai utilisé ta fonction sum ca marche impec mais! ca me retourne 12 normal sachant que le parametre donné est 165 Mais en fait j'aimerai que la fonction sum recontinue jusk se que la somme face 1 chiffre!. Donc une fois que la fonction a fait une fois sa tache. Si elle vois que le strlen du $nb généré n'est pas de 1. Alors la fonction est répété.
j'ai essayé ca mais ya aucun changement:

<?
function sum($nb)
{
$result = 0;

while($nb > 10)
{
$reste = $nb % 10;
$result += $reste;
$nb = ($nb - $reste) / 10;
}
if (strlen($nb) != 1) {
sum($nb);
}
if (strlen($nb) == 1) {
return ($result + $nb);
}
}

Merci d'avance :p
----------------------------------------------------

Site en developpement : www.diablus.com
0
cs_zzzzzz Messages postés 408 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 18 décembre 2012
1 août 2004 à 13:28
Non ca va aller. J'ai déja perdu trop de temps. MErci encore! Tu m'a bien aidé :). Sinon pour mon pseudo ct Creatix ou Dieu ca dépend.
----------------------------------------------------

Site en developpement : www.diablus.com
0
Rejoignez-nous