/* Expansion d'un caractere en une chaine de caracteres   */
/* par substitution de lettres par d'autres lettres       */
/* a -> bc, b -> ca, c -> a                               */

public class Expansion {

////////////////////////////////////////////////////////////

/* Expansion d'un caractere en une chaine de caracteres   */
/* par substitution de lettres par d'autres lettres       */
/* a -> bc, b -> ca, c -> a                               */
  
  public static String expansion(char lettre,int niveau) {
    String res = "";
    if ( niveau == 0 ) {
      res = res+lettre; }
      else {
      switch(lettre) {
        case 'a' :
          res = expansion('b',niveau-1)+expansion('c',niveau-1);
          break;
        case 'b' :
          res = expansion('c',niveau-1)+expansion('a',niveau-1);
          break;
        case 'c' :
          res = expansion('a',niveau-1);
          break; } }
    return res;
  }

////////////////////////////////////////////////////////////
  
  public static void main(String [] args) {
    char test;
    int nb;
    Ecran.afficher("Quel est votre caratere ? ");
    test = Clavier.saisirChar();
    Ecran.afficher("Combien de niveaux      ? ");
    nb = Clavier.saisirInt();
    for ( int n = 0 ; n <= nb ; n++ ) {
      Ecran.afficherln(n," : ",expansion(test,n)); }
  }
}