Afficher les nombre d'une suite

natier -  
 natier -
Bonjour,

J'ai fait un programme qui affiche les nombres de la suite tant que le résultat est différent de 1.
Si le nombre est pair, on fait nombre / 2
Si le nombre est impair, on fait 3 * nombre + 1
Pouvez vous m'aidez à corriger mes erreurs

import java.util.Scanner;
public class TP10_Suites {
public static void main(String[] args) {

int nombre, reste;
nombre = 0;
int [] mylist= new int[nombre];

System.out.println("Veuillez saisir un nombre");
nombre = (new Scanner(System.in)).nextInt();
while (nombre !=1)
{
reste = nombre / 2;
if (reste == 0)
{
nombre = nombre / 2;
}
else
{
nombre = 3 * nombre + 1;
}
mylist[nombre] = mylist[nombre + 1];
}
System.out.println("Les nombres de la suite sont : " + mylist[nombre] + "");
}
}

Merci de votre aide

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    reste = nombre / 2; 
    Ce n'est pas comme ça que l'on test si c'est un nombre pair ou pas, il faut utiliser l'opérateur % à la place du /

    int [] mylist= new int[nombre];
    Attention : au moment où tu fais ça, nombre==0, il vaudrait mieux faire ça après avoir lu la valeur de nombre. Mais je ne vois pas l'intérêt d'un tel tableau !
    0
    1. natier
       
      J'ai modifier un peut le code mais toujours une erreur pour l'affichage

      import java.util.Scanner;
      public class TP10_Suites {
      public static void main(String[] args) {

      int nombre, reste;
      nombre = 0;
      int [] mylist= new int[nombre];

      System.out.println("Veuillez saisir un nombre");
      nombre = (new Scanner(System.in)).nextInt();
      while (nombre !=1)
      {
      reste = nombre % 2;
      if (reste == 0)
      {
      nombre = nombre / 2;
      }
      else
      {
      nombre = 3 * nombre + 1;
      }
      mylist[nombre] = mylist[nombre + 1];
      }
      System.out.println("Les nombres de la suite sont : " + mylist[nombre] + "");
      }
      }
      0
    2. KX Messages postés 19031 Statut Modérateur 3 020
       
      int [] mylist= new int[nombre];
      Attention : au moment où tu fais ça, nombre==0, il vaudrait mieux faire ça après avoir lu la valeur de nombre. Mais je ne vois pas l'intérêt d'un tel tableau !"
      0
    3. natier
       
      d'accord, mais j'arrive toujours pas a voir ce qu'il bloc, on me dit que c'est à la dernière ligne
      0
    4. KX Messages postés 19031 Statut Modérateur 3 020
       
      Ce qui bloque c'est que ton tableau n'a pas de case vu que nombre=0 lorsque tu créés le tableau !
      0
    5. natier
       
      je doit mettre quoi alors
      0