Partage
  • Partager sur Facebook
  • Partager sur Twitter

Aide exo C++

Les Boucles....

    11 octobre 2007 à 12:43:21

    Bonjour;
    je dois faire un exo de C++ mais je ne sais pas comment terminer mon programme. Voila la donnée et la pertie du code que j'ai creer:

    Modifiez votre programme pour qu'il affiche le nombre d'itérations nécessaires pour parvenir à $1$, non plus pour le nombre entré par l'utilisateur, mais pour les $10$ premiers entiers:

    1: 0 iterations.
    2: 1 iterations.
    3: 7 iterations.
    4: 2 iterations.
    5: 5 iterations.
    6: 8 iterations.
    7: 16 iterations.
    8: 3 iterations.
    9: 19 iterations.
    10: 6 iterations.




    1. #include <iostream>
    2. using namespace std;
    3. int main (int argc,char ** argv)
    4. {
    5.   int x;
    6.   cout << "Un nombre est demandé, je repete: on demande un nombre!" << endl;
    7.   cin >> x;
    8. do
    9.   {
    10.     if (x % 2 == 0)
    11.       x = (x / 2);
    12.     else
    13.       x = ((x *3 )+ 1);
    14.     cout << x << endl;
    15.   }
    16.   while (x != 1);
    17.  return 0;
    18. }
    • Partager sur Facebook
    • Partager sur Twitter
      11 octobre 2007 à 13:19:07

      Déjà, pour que le premier entier se fasse en 0 itération, il ne faut pas faire un do...while, mais un while.

      Ensuite, connais-tu les boucle for ?
      • Partager sur Facebook
      • Partager sur Twitter
        11 octobre 2007 à 15:29:32

        deja tu parle d'itération sans dire ce que tu itéres -_-'

        enfin bon tente de rempacer le
        1. do
        2.   {
        3.     if (x % 2 == 0)
        4.       x = (x / 2);
        5.     else
        6.       x = ((x *3 )+ 1);
        7.     cout << x << endl;
        8.   }while (x != 1);


        par un truc du genre :
        1. int i;
        2.   for (i=0; x != 1; i++)
        3.   {
        4.     if (x % 2 == 0)
        5.        x /= 2;
        6.     else
        7.        x = ((x *3 )+ 1);
        8.     //cout << x << endl; (tu affiche que si tu veux)
        9.   }
        10. cout << i; //le nombre d'itération
        • Partager sur Facebook
        • Partager sur Twitter
          12 octobre 2007 à 10:18:14

          Ou par un :

          int i
          while (...) {
          i++;
          instructions
          }

          cout<<"nombre d'itération = "<<i<<endl;

          Mais je doute que connaître le nombre d'itération soit le principal problème en l'occurence ;)
          • Partager sur Facebook
          • Partager sur Twitter

          Aide exo C++

          × 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.
          • Editeur
          • Markdown