Je n'arrive pas à trouver la condition. Pouvez vous m'aider svp.
Enoncé:
Compléter la fonction getOddOneOut qui attend un tableau d'au moins 3 entiers qui sont tous égaux sauf 1, et qui renvoie l'intrus (l'entier différent des autres).
Par exemple, si le tableau est {1, 1, 42, 1, 1, 1}, la fonction renverra 42.
Ce que j'ai trouvé:
public static int getOddOneOut(int [] t) {
int x;
for (int i=0;i<=t.length;i++)
{
if (!(t[i]==x)){
return x;
}
}
}
deux cas de figure: le nombre n'est pas le premier
le nombre est le premier:
--> proposons que c'est pas le premier
public static int getOddOneOut(int [] t) {
int x = t[0];
//commence à 1 pas besoin de verifier [0]==[0]
for (int i=1;i<=t.length;i++)
{
if (!(t[i]==x)){
return t[i];
}
}
}
Oui mais si c'est le premier ?
bon bah le second sera détecté comme intrus (logique implacable), dans ce cas si le 2 = le 3 alors on sort le 1 reprenons notre code
public static int getOddOneOut(int [] t) {
int x = t[0];
//commence à 1 pas besoin de verifier [0]==[0]
for (int i=1;i<=t.length;i++)
{
if (!(t[i]==x)){
//i=1 => second element en cours de traitement)
if(i==1&&t[1]==t[2])
return t[0];
else
return t[i];
}
}
}
- Edité par Regz 21 novembre 2014 à 18:50:45
Condition
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.