/* Affichages par recursivite                  */

public class AffichagesRecursifsEnConsole {

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

/* Affichage par ordre decroissant             */
/* des nombres entiers compris entre 0 et n    */

  static void affichageDecroissant(int n) {
    Console.afficherln(n);
    if ( n > 0 )
      affichageDecroissant(n-1);
  }

/* Affichage par ordre croissant               */
/* des nombres entiers compris entre 0 et n    */

  static void affichageCroissant(int v,int n) {
    Console.afficherln(v);
    if ( v < n )
      affichageCroissant(v+1,n);
  }

  static void affichageCroissant(int n) {
    affichageCroissant(0,n);
  }

/* Affichage par ordre croissant               */
/* des nombres entiers compris entre 0 et n    */
/* Solution elegante                           */

  static void affichageCroissant2(int n) {
    if ( n > 0 )
      affichageCroissant2(n-1);
    Console.afficherln(n);
  }

/* Affichage par ordre decroissant             */
/* puis par ordre croissant                    */
/* des nombres entiers compris entre 0 et n    */

  static void affichageDecroissantCroissant(int n) {
    Console.afficherln(n);
    if ( n > 0 )
      affichageDecroissantCroissant(n-1);
    Console.afficherln(n);
  }

/* Affichage par ordre croissant             */
/* puis par ordre decroissant                    */
/* des nombres entiers compris entre 0 et n    */

  static void affichageCroissantDecroissant(int n,int val) {
    Console.afficherln(val-n);
    if ( n > 0 )
      affichageCroissantDecroissant(n-1,val);
    Console.afficherln(val-n);
  }

/* Affichage des chiffres d'un nombre entier   */

  static void affichage(int n) {
    if ( n >= 10 )
      affichage(n/10);
    Console.afficher(n%10);
  }

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

/* Programme principal                         */

  public static void main(String [] args) {
    Console.setTitle("AffichagesRecursifs");
    int n;
    Console.afficher("Valeur ? ");
    n = Console.saisirInt();
    affichageDecroissant(n);
    Console.sautDeLigne();
    affichageCroissant(n);
    Console.sautDeLigne();
    affichageCroissant2(n);
    Console.sautDeLigne();
    affichageDecroissantCroissant(n);
    Console.sautDeLigne();
    affichageCroissantDecroissant(n,n);
    Console.sautDeLigne();
    Console.afficher("Valeur ? ");
    n = Console.saisirInt();
    affichage(n);
    Console.sautDeLigne();
  }
}