begin process at 2012 05 27 16:35:17
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caractères

 > GÉNÉRATEUR DE SUITE DE NOMBRES 1 / 11 / 21 / 1211 / 111221 / 312211 / ETC

GÉNÉRATEUR DE SUITE DE NOMBRES 1 / 11 / 21 / 1211 / 111221 / 312211 / ETC


 Description

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
3 1131211131221
13211311123113112211
...

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

Source

  • #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;
  • }
#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++ ;)


 Sources de la même categorie

CALCUL DE CLEF RIB par Renfield
Source avec Zip [C] WD_STRING V2.2 par cyberripper
Source avec Zip LES STRING EN C, AFFECTATION, CONCATÉNATION, SPLIT, ... par appranting
Source avec Zip [C] WD_STRING V1.9 par cyberripper
Source avec Zip LIBRAIRIE LANGUAGES par astro53

Commentaires et avis

Commentaire de dudiolini le 14/05/2004 19:17:34

t'as lu les fourmis toi ;)

Commentaire de djl le 14/05/2004 20:30:22

et delete tu connais ?

Commentaire de nicovmd le 14/05/2004 21:38:04

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 :)

Commentaire de jockos le 15/05/2004 00:04:04

C'est le triangle de Pascal.. (du nom du grand mathématicien)

Commentaire de jcalbator le 25/05/2004 17:31:36

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

Commentaire de jockos le 25/05/2004 17:42:12

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... :-)

Commentaire de badoben le 20/11/2006 11:12:23

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<iostream>
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");
}

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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,530 sec (4)

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