/************************************************ Grundlegende Algorithmen mit Java, http://algorithmen-und-problemloesungen.de/ Copyright @2007-2008 by Doina Logofatu in C#: Michael Gärtner ************************************************/ using System; using System.IO; namespace Logofatu { class P5Ack { private static String FileInputName = "ack.in"; private static String FileOutputName = "ack.out"; private static long ack(long n, long m) { if ( 0 == n ) return m + 1; else if ( 0 == m ) return ack(n - 1, 1); else return ack(n - 1, ack(n, m - 1)); } static void Main(string[] args) { StreamReader sr = null; StreamWriter sw = null; try { sr = new StreamReader(FileInputName); sw = new StreamWriter(FileOutputName); while ( !sr.EndOfStream ) { string[] sArray = sr.ReadLine().Split(' '); long n = long.Parse(sArray[0]); long m = long.Parse(sArray[1]); sw.Write("Ack("); sw.Write(n); sw.Write(", "); sw.Write(m); sw.Write(")= "); sw.WriteLine(ack(n, m)); } } catch ( IOException ex ) { Console.WriteLine("Fehler bei der Dateiverarbeitung!\n" + ex); } finally { if ( sr != null ) { sr.Close(); } if ( sw != null ) { sw.Close(); } } } } }