Programma java pour obtenir nombre 495

natier -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,

Je doit faire le programme suivant en Java mais je ne trouve comment on fait pour que le programme choissisent le nombre A qui doit être compris 100 et 999 mais qui doit exclurent les nombre 111, 222, 333, 444, 555, 666, 777, 888, 999. Voici l'algo:

Début Algorithme
Variables: A, B, C, E, F, G et N sont des entiers naturels
Traitement:
A = Lire
N = 0
Tat que (A différent de N) faire
Afficher (A)
N = A
B = Entier (A/100)
A = (A - B*100)
C = Entier (A/10)
A =(A - C*10)
E = minimum (A, B, C)
G = maximum (A, B, C)
F = (A+B+C-E-G)
A = ((G*100 + F*10 + E) - (E*100 + F*10 + G))
Fin Tant que
Fin Algorithme

Merci de votre aide

5 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Ça fait beaucoup de calculs pour pas grand chose... 111, 222, etc. sont tous divisibles par 111, il suffit donc de calculer le reste de cette division et de le comparer à 0.

    int n=0;
    final Scanner clavier = new Scanner(System.in);
    while (n<100 || n>999 || n%111==0)
    {
        System.out.print("Entrez un nombre : ");
        n = clavier.nextInt();
    }
    System.out.println(n);
    0
  2. natier
     
    Le code que tu m'a donné c'est juste pour le nombre A qui doit être tiré au sort au début?
    0
  3. KX Messages postés 19031 Statut Modérateur 3 020
     
    Tu n'as pas dit que ça devait être tiré au sort !
    Moi j'ai regardé ton pseudo-code et il y avait "A = Lire" j'ai donc considéré que c'était l'utilisateur qui entrait l'entier et que le programme faisait une vérification.
    C'est ce que fait ton algorithme, c'est ce que fait mon code.

    Avec de l'aléatoire ça donne ça :

    final Random random = new Random();
    int n;
    
    do  n = 100+random.nextInt(900);
    while (n%111==0);
    
    System.out.println(n);
    La confiance n'exclut pas le contrôle
    0
  4. natier
     
    Dans ce que tu m'a mi si je comprend bien, le programme choisi un nombre entre 100 et 999 et enlève que le nombre 111?
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Presque, il choisi un nombre entre 100 et 999, et recommence si c'est un multiple de 111.
      Cela exclue donc 111, mais aussi 222, 333, etc.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. natier
     
    Je peu mettre A à la place de n? Car le nombre Aléatoire est noté A dans mon algo
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Tu mets bien ce que tu veux, cependant les conventions Java préconise l'utilisation de lettres minuscules pour le nom des variables.
      0