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

Résolu
lavoiture -  
dragondark Messages postés 465 Date d'inscription   Statut Membre Dernière intervention   -
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

Pacorbanix
 
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   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
0
Pacorbanix
 
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   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570 > Pacorbanix
 
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   Statut Membre Dernière intervention   159
 
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