1.
/**
> * Angewandte Mathematik, SS11
> * Problem:10288 - Coupons
> * Link:
> http://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=1229
> * @author Brielbeck, Daniel
> * @author Weber, Georg
> * @version 1.0, 05/24/2011
> * Method : Ad-Hoc
> * Status : Accepted
> * Runtime: 0.248
> */
> import java.io.BufferedReader;
> import java.io.InputStreamReader;
>
> public class Main {
>
>
> public static void main(String[] args) throws Exception {
> BufferedReader reader = new BufferedReader(new
> InputStreamReader(System.in));
> String input;
> long zaehler=1;
> long nenner=1;
> while ((input = reader.readLine()) != null)
> {
> long n=Integer.valueOf(input);
> zaehler=1;
> nenner=1;
> for (int i=2;i<=n;i++){
> zaehler=(zaehler*i)+nenner;
> nenner=nenner*i;
>
> long nenner_temp=nenner;
>
> nenner=nenner/ggt(nenner,zaehler);
> zaehler=zaehler/ggt(nenner_temp,zaehler);
> }
> zaehler= zaehler*n;
>
> long nenner_temp=nenner;
>
> nenner=nenner/ggt(nenner,zaehler);
> zaehler=zaehler/ggt(nenner_temp,zaehler);
>
> long ganz = zaehler/nenner;
> long zaehler_neu=zaehler%nenner;
>
> int wdh=2;
> if(ganz>=11&&n<26) wdh=3;
> else{
> if(ganz>=26) wdh=4;
> }
>
> //Ausgabe Zeile 1
> if(zaehler_neu!=0){
> for(int i=0;i<wdh;i++) System.out.print(" ");
> System.out.println(zaehler_neu);
>
> //Lšnge des Strichs brechnen
> int max=0;
> if (nenner<zaehler_neu) max = String.valueOf(zaehler_neu).length();
> else max = String.valueOf(nenner).length();
>
> //Ausgabe Zeile 2
> System.out.print(ganz+" ");
> for(int i=0;i<max;i++) System.out.print("-");
> System.out.print("\n");
>
> //Ausgabe Zeile 3
> for(int i=0;i<wdh;i++) System.out.print(" ");
> System.out.println(nenner);
> } else {
> System.out.println(ganz);
> }
>
>
> //System.out.println(ganz+" "+zaehler_neu+"/"+nenner);
> }
> }
>
> static long ggt(long a, long b){
> if(a==b||b==0) return a;
> else return ggt(b,a%b);
> }
>
>
> }
>