Feire une division sans les opérateur /, *,%

Résolu/Fermé
lavoiture - 27 oct. 2009 à 12:48
dragondark Messages postés 465 Date d'inscription samedi 23 février 2008 Statut Membre Dernière intervention 27 avril 2016 - 27 oct. 2009 à 15:33
Bonjour,
je dois ecrire une méthode int division( int x, int y) qui me permettra de faire une division, mais le problème c'est que je dois l'écrire sans les opérateurs /, *, %.

merci pour votre aide

3 réponses

tu l'as appris à l'école cette méthode (plus ou moins).

Ex : 115 divisé par 10 :

j'enlève 10 autant de fois que je peux, et je compte combien de fois je l'ai enlevé. ici : on peut enlever 11 fois 10 (avant de passer négatif).

Il reste 5. après tu sais que tu dois rajouter un zéro (comme quand tu poses la division), et passer aux virgules de la solution. ça fait 50. Tu peux enlever 5 fois 10 avant d'arriver à un négatif. Après il reste zéro donc c'est fini.

Donc la réponse est : 11.5
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
27 oct. 2009 à 13:02
0
voilà, mais comme il ne peut pas faire de multiplication, il doit faire une boucle avec des soustractions (qui s'arrette lorsque tu passes à un négatif)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567 > Pacorbanix
27 oct. 2009 à 13:11
Salut,

Dans le lien que je lui ai donné il y a les techniques de divisions (c'est à lui de choisir la techniques adapté ;-), parmi lesquelles on trouve : division par soustraction et division par addition.
;-)
0
dragondark Messages postés 465 Date d'inscription samedi 23 février 2008 Statut Membre Dernière intervention 27 avril 2016 157
27 oct. 2009 à 15:33
bonjour

soit en langage de codage :
fonction division(entier x,entier y) de type entier
{
    ///variable d'entrée
        entier x //divisé
        entier y //diviseur
        entier reponse =0
        tantque(x>y){
             x=x-y
             reponse = reponse+1
        }
retourne reponse
}


dans le cas ou l'ont recherche un entier en retour, sinon il suffis de rajouter avant de retourner la réponse
tantque(x != 0){
      x = x+x+x+x+x+x+x+x+x+x (equivalent a x*10)
     decimal = division(x,y)
     reponse = reponse concatener decimal
}

mais attention aux division qui ne finisse pas ;)

cordialement
Dragondark de lonlindil
0