Programma java pour obtenir nombre 495

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. Modérateur
    Ç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
    1. Le code que tu m'a donné c'est juste pour le nombre A qui doit être tiré au sort au début?
      0
      1. Modérateur
        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
        1. 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. Modérateur
            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
        2. Je peu mettre A à la place de n? Car le nombre Aléatoire est noté A dans mon algo
          0
          1. Modérateur
            Tu mets bien ce que tu veux, cependant les conventions Java préconise l'utilisation de lettres minuscules pour le nom des variables.
            0