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

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