Calculer le modulo sans utiliser l'operateur %
Bonjour,
je suis plus ou moins nouveau en C++ et j'ai un pti probleme. Comment pourrais-je calculer le % de facon iterative et sans utiliser les operateurs %, * et /.
Mon idée est la suivante:
Calcul de i%j:
i > j et j!=0;
calculer i - j et redonner le resultat juska ce ke i<j.
Mais je nariv pa à implementer i - j de facon periodique, cest a dire, i-j de facon repetee.
Voici ce ke g pu fair juska present:
Natural est la classe.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
Natural operator%(Natural n1, Natural n2)
{
int modulo(0);
assert(n2.getValue()!=0);
modulo = n1.getValue() - n2.getValue();
if ( n1 == n2)
{ return modulo = 0;}
else
if(n1.getValue()<n2.getValue())
{ return modulo = n1.getValue();}
else // c'est ici ke commencent les ennuis!!!
{
while (n1.getValue()>n2.getValue())
return modulo = modulo - n2.getValue();
}
return modulo;
} |
Merci pour l'aide!