Bonjour à tous,

voilà je galère un petit peu pour faire une fonction. J'ai deux nombres en base trois (j'ai préalablement fait une fonction me permettant de passer de base 10 à base 3).

Mon idée est de comparer chaque chiffres de ces deux nombres un par un et de noter le nombre de différences.

j'avais commencer par faire un bout de code de ce genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int haveDiff(int a, int b) {
  int result =0;
  int divEntiereA,divEntiereB;
  int i = 0;
  int max=a;
  if (a<b) {
    max = b;
  }
  while ((max /pow(10,i)) > 1) {
    i++;
  }
  while (i>0) {
    divEntiereA = a/10*i;
    divEntiereB = b/10*i;
    if (divEntiereA != divEntiereB) {
	result++;    
    }
    i--;
  }
  return result;
}
Mais ce code ne marche pas à cause des zéros, je m'explique, je souhaite que pour les nombres : 0000 et 1000 cela me renvoie une seule différence mais dans ma fonction telle qu'elle est faîte, cela me prend 0 et 1000 donc 3 différences.

La solution pourrait être de passer mes nombres en string mais cela m'intéresse beaucoup moins que les entiers. Voyez vous une solution pour m'aider ?

Merci d'avance