/**************************** f.java *****************************************/
import AlgoTools.IO;

/** Sichtbarkeit von Variablen- und Methodennamen                            */

public class f {                          // Klasse f

  public static int f;                    // klassenbezogene Variable f

  public static void f(){                 // Klassenmethode f (null-stellig)   
    f = 42;                               // referiert klassenbezogene Variable
  }
  
  public static int f(int n) {            // Klassenmethode f (einstellig)
    int f=1;                              // lokale Variable f
                                          // verdeckt klassenbezogenes f 
    for (int i=1; i<=n; i++)              // berechnet Fakultaet 
      f = f * i;   
    return f;
  }

  public static int f(int x, int y){      // Klassenmethode f (zweistellig)
    while (x != y)                        // berechnet ggt von x und y
      if (x>y) x = x-y; 
          else y = y-x;      
    return x;
  }
  
  public static void main(String[] argv){
    int f=5;                              // lokale Varibale f
    f();                                  // Aufruf von nullstelligem f
    f = f(f);                             // Aufruf von einstelligem f 
    f = f(f,f);                           // Aufruf von zweistelligem f
  }
}
