/* Inversion d'une chaine de caracteres        */

public class InversionChaineMethodeDichotomique {
  
/////////////////////////////////////////////////

/* Fonction de calcul et retour de l'inverse   */
/* d'une chaine de caracteres                  */
/* st : la chaine de carateres à inverser      */

  static String inversionChaine(String st) {
    String s;
    String s1;
    String s2;
    int l1;
    int lst = st.length();
    if ( ( lst == 0 ) || ( lst == 1 ) ) {
      s = st; }
      else {
      l1 = lst/2;
      s1 = inversionChaine(st.substring(0,l1)); 
      s2 = inversionChaine(st.substring(l1,lst)); 
      s = s2+s1; }
    return s;
  }

/////////////////////////////////////////////////
  
/* Programme principal                         */

  public static void main(String [] args) {
    String st;
    String sti;
    Ecran.afficher("Chaine a inverser ? ");
    st = Clavier.saisirString();
    sti = inversionChaine(st);
    Ecran.afficherln("Chaine inversée   : ",sti);
  }
}