Générateur de suite de nombres 1 / 11 / 21 / 1211 / 111221 / 312211 / etc

Soyez le premier à donner votre avis sur cette source.

Snippet vu 41 386 fois - Téléchargée 29 fois

Contenu du snippet

Tout d'abord, commencez par essayer de comprendre comment est fabriquée cette suite de nombres (c'est un jeu tout bête) :
1
11
21
1211
111221
312211
13112221
1113213211
31131211131221
13211311123113112211
...

Si vous connaissez pas, essayez de comprendre en examinant mon petit code c++ qui génère automatiquement cette suite...

Source / Exemple :


#include <iostream>
using namespace std;

const int NB = 20; // nombre de lignes à afficher

char *suite (char *prec)
{
	char *i = prec;
	char *suiv = new char[500];
	char *j = suiv, *ret = suiv;

	for(int cpt=1; *i!='\0' ;)
	{
		for (; *i==*(i+1); i++) cpt++;
		if (*i != '\0')
		{

  • j++ = cpt+'0';
  • j++ = *i++;
cpt=1; } }
  • j='\0';
return ret; } void main() { char *dep="1"; for (int i=0; i<20; i++) { cout << dep << "\n\n"; dep = suite (dep); } cout << dep << endl; }

Conclusion :


Ce code aurait très bien pû être en C, mais je préfère le c++ ;)

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2
Date d'inscription
dimanche 19 novembre 2006
Statut
Membre
Dernière intervention
20 novembre 2006

ben moi en code c++ , j ai fait ainsi:
et il marche pour le nombre d etapes introduites par l utilisateur et le chiffre ontroduit par l utilisateur

#include
using namespace std;
int main()
{
int long v[100];//introduction du 1er vecteur
int long w[100],n, etapes,longueur,cpt,y,z;
//introduction du vecteur de sauvegarde de donee
cpt=1;// initialisation du compteur
bool t= true;
//introduction d une valeur boolleenne qui me servire dans la boucle while
cout<<"veuillez introduire la taille de la suite initiale"<<endl;
cin>>n;//introduction de la taille de la suite
cout<<"veuillez introduire la suite voulue"<<endl;
for(int i=0; i<n ; i++)//boucle permettant d'introduire le vecteur voulu
{
cin>>v[i];
}
cout<<endl<<"veuillez introduire le nombre d etapes voulues"<<endl;
cin>>etapes;//introduction du nombre d 'etapes
z=n;// z premettra de connaitre la taille du vecteur
for(int j=0;j<etapes ; j++)
//fait tourner le programme le nombre de foi voulu
{
y=0;
//initialisation du y, qui servira a designer la place dan le vecteur w
for( int i=0; i<z ; i++)
// fait tourner le progamme sur toute la longeur du vecteur
{
while( t!=false )
//condition pour verifier si le v[] est egal au v[]suivant
{
if (v[i]==v[i+1])
{ cpt ++;
// compteur augmente pour la repetition de chaque chiffre
i++; }
if( v[i]!= v[i+1])
{t=false;} // condition de sortie de la boucle

}
w[y]=cpt;
//introduction de la donnee du nomre de repetition du chiffre dan w[]
w[y+1]=v[i];// introduction de la valeur du chiffre dans w[]
y=y+2;
//augmentation du w , permettan d aller plu loin dan le vecteur
cpt=1;//reinitialisation du compteur
t=true;//reinitialisation de la valeur booleene
}
for(int i=0; i<y ; i++)//permet de remettre toute les donnee de w[]dans v[]
{
v[i]=w[i];

}
z=y;//dit la longeur du vecteur
}

for(int i=0; i<y ; i++)//afiche les valeur demandee
{
cout<<v[i];
}

system("PAUSE");
}
Messages postés
321
Date d'inscription
dimanche 22 octobre 2000
Statut
Membre
Dernière intervention
14 mai 2005
2
Ouais désolé... j'ai voulu faire le malin et j'ai parlé un peu trop vite...
;)
Je m'en suis aperçu après avoir posté mon commentaire... :-)
Messages postés
1
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
25 mai 2004

Ca n'as rien a voir avec le triangle de pascal qui est, je le rapelle:

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
...

Avec une petite modif du code pourrais le faire aussi =p
Messages postés
321
Date d'inscription
dimanche 22 octobre 2000
Statut
Membre
Dernière intervention
14 mai 2005
2
C'est le triangle de Pascal.. (du nom du grand mathématicien)
Messages postés
3
Date d'inscription
mardi 23 décembre 2003
Statut
Membre
Dernière intervention
11 août 2005

J'ai fait ce code tellement vite fait que j'ai pas mis les delete, c'est vrai...
Je savais pas que c'était dans les fourmis :)
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.