Menu

Feire une division sans les opérateur /, *,% [Résolu/Fermé]

- - Dernière réponse : dragondark
Messages postés
463
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
Afficher la suite 

3 réponses

0
Merci
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
Messages postés
21510
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
8 octobre 2012
3332
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)
lami20j
Messages postés
21510
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
8 octobre 2012
3332 > 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.
;-)
Messages postés
463
Date d'inscription
samedi 23 février 2008
Statut
Membre
Dernière intervention
27 avril 2016
142
0
Merci
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