begin process at 2012 05 30 04:48:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

aider moi a résoude cet excercies


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

aider moi a résoude cet excercies

mercredi 20 janvier 2010 à 02:04:56 | aider moi a résoude cet excercies

youssef311

je suis debutant en c++
pouvez vous m'aider a resoudre cet excercice merci d'avance

A un entier n strictement positif on associe n/2 si n est pair et 3n+1 si n est impair. En réappliquant cette transformation à l'entier obtenu, on définit un algorithme dit de Syracuse. On admettra que pour tout entier strictement positif de départ on finisse toujours par arriver à 1.
On demande d'écrire un programme qui, pour une valeur de départ proposée par l'utilisateur, affiche la liste des entiers obtenus jusqu'à 1, ainsi que le nombre de fois qu'il est nécessaire d'appliquer la transformation pour y arriver (ou, si l'on part de 1, pour y revenir).
Voici un exemple de déroulement de cet algorithme :
Valeur de départ (entier strictement positif) ? 12
6 3 10 5 16 8 4 2 1
On doit appliquer 9 fois la transformation avant d'arriver à 1.
mercredi 20 janvier 2010 à 11:38:01 | Re : aider moi a résoude cet excercies

buno

Administrateur CodeS-SourceS
Règlement
Règle 7: quels sont les détails qui te posent problèmes?


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
mercredi 20 janvier 2010 à 13:41:42 | Re : aider moi a résoude cet excercies

youssef311

merci pour votre reponse


j'ai pas arriver a comprendre comment je peux utiliser modulo


je suis encore etudiant et c'est un devoir "homework" pour moi merci pour votre aide
mercredi 20 janvier 2010 à 14:05:38 | Re : aider moi a résoude cet excercies

buno

Administrateur CodeS-SourceS
l'opérateur modulo (%) te donne le reste de la division.
Si, par exemple, tu divise par 2 (au hasard ) et que tu regarde le reste, tu as soit 0, soit 1:
- 1%2 = 1, 3%2 = 1, ...
- 2%2 = 0, 4%2 = 0, ...
Tu vois ce que cela te permet de trouver?

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
lundi 22 février 2010 à 13:21:08 | sympa

neone

pour plus généralisé au lieu de 3n+1 tu fais an+b a et b premiers.
sinon voila une fonction vite fait :
void Syracuse(int *n)
{
int a=0;
if(n%2==0)
{
a=n/2;
}
else
{
a=3*n+1;// pour l'optimiser écrit direct a=(3*n+1)/2;
}
cout<<"valeur atteinte"<<a<<endl;
printf("valeur atteinte %d",a);
Syracuse(&a)
}
amuse toi. je viens de l'écrire donce a toi de compiler et de faire ton main. boncourage
vendredi 19 mars 2010 à 18:01:15 | Re : aider moi a résoude cet excercies

noname001

Code C/C++ :
#include <iostream>
using namespace std;

int main()
{
    int n,nbr_transformation=0;
    cin >> n; //nbr utilisateur

    while ( n != 1)
    {
          if (n%2 == 0) // Si il est pair
          {
             n /= 2;
          }
          else n = 3*n + 1;  // Impair

          cout << n << " "; // affiche les valeurs
          nbr_transformation++;
    }
    cout << "Nombre de transformations: " << nbr_transformation << endl;
    
    return 0;
}


Comme dit plus haut, le modulo te sert à vérifier si le nbr est pair ou impair. Le reste se fait par une simple boucle et un compteur pour avoir le nombre de modifications faites(donc de tours de boucle)



Cette discussion est classée dans : aider, entier, strictement, transformation, positif


Répondre à ce message

Sujets en rapport avec ce message

Extern ? C'est tout con mais aider moi please!! ^^ [ par Gendal67 ] Voila, ça va vous paraitre trop bete comme question, mais tant pis... en fait, je asis qu'il est possible de faire correspondre une même variable à pl utilisation de "SetScrollPos" de l'api windows [ par Tchii28 ] Bonjour,J'ai un problème je travaille sous windev 8 et apparemment ce site ne traite pas le langage de ce dernier. J'espère malgré tout qu'il y a des String de la forme hexa ----> entier [ par siphilis ] bonjour,voila, j'aimerais convertir un string de la forme : "0x2f9" en entier. comment puis je faire?merci o secour! pouvez-vous m'aider pour cette erreur? [ par vodkapomme43 ] Salut tout le monde,Voila mon problème: je veux effectuer un plaquage de texture en format jpeg (j'utilise visual c++ avec la bibliotèque open GL) et AIDE!!!!!!!!programme c++ [ par aslauque ] je dois ecrire un programme en c++:1) déclare un entier et l'initialise à la valeur 262)affiche la valeur de cet entier à l'écran3)affiche l'adresse d qui peut m'aider a resoudre un pb sur la gestion des pipes [ par vitocor ] voici le sujetecrire un prog en C qui simule la commande ls-l/wc-l à l'aide de 2 processus.merci pour votre aidebye Générer 5000 réels Aléatoirement.... [ par nHioub ] Bonjour, voila je dois générer 5000 réels pour étudier la vitesse de tri dans un tableaux des fonctions Bulles/Selection/Shell.Pour savoir si mon prog [C++] Traitement de caractère [ par DedeSurf ] Je voudrais dans une phrase extraire un mot lire que le début, que la fin ou que le milieu, un mot en particulier ...et je ne s'est pas faire, sa pour Problème de saisie avec cin (c++) [ par SystemOfAXav ] Salut,Je doit programmer un petit jeu comme projet de fin de semestre.A plusieurs reprises, je demande a l'utilisateur de saisir un entierentre 3 et 1


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales