C# Problem bei Ausgabe (gleicher Abstand)

Suprimos

Lieutenant
Registriert
Sep. 2009
Beiträge
516
Hallo,

folgendes, habe ein Programm was die Fibonacci Zahl von n mit 2 Algorithmen berechnet.
Wir sollen das in einer vorgegebenen Form ausgeben.
Problem, bei mir verschiebt sich immer alles, siehe:

Code:
public static void Main()
			{
	 		Console.WriteLine("i\t\t F_i\t\t\t\t      fibonacci1\t\t       fibonacci2    ");
			Console.WriteLine("===============================================");
			for (int i=5;i<=40;i++)
				{
				var time1 = DateTime.Now;
				int erg=fibonacci1(i);			
				var time2 = DateTime.Now;
				Console.Write(i);
				Console.Write("\t\t");
				Console.Write(erg);
				Console.Write("\t\t\t\t\t");
				Console.Write("{0:F6}s", (DateTime.Now - time1).TotalSeconds);
				Console.Write("\t\t");
				Console.Write("{0:F6}s", (DateTime.Now - time2).TotalSeconds);
				Console.Write("\n");
				}
			
			}

screenshot1xs.png
 
dynamische anzahl von \t....klingt kompliziert...ich versuch mich mal
kann es sein das es dieses padleft nicht in mono (linux) gibt... !? achso..ich muss erst alles in stringsumwandeln...puh..geht das nicht leichter :D
 
Zuletzt bearbeitet:
Du musst ja nur herausfinden ab welcher länge von "erg" die nächste Ausgabe um einen Tabulator "verschoben" wird und je nach Zahl noch einen einfügen.

Code:
public static void Main()
        {
            Console.WriteLine("i\tF_i\t\tfibonacci1\tfibonacci2    ");
            Console.WriteLine("===============================================");

            int x = 2;

            for (int i = 5; i <= 40; i++)
            {
                var time1 = DateTime.Now;
                var time2 = DateTime.Now;
                string format = "\t";

                x *= 2;

                Console.Write(i);
                Console.Write(format);
                Console.Write(x);

                if (x.ToString().Length < 8)
                {
                    format += "\t";
                }

                Console.Write(format);

                Console.Write("{0:F6}s", (DateTime.Now - time1).TotalSeconds);
                Console.Write("\t");
                Console.Write("{0:F6}s", (DateTime.Now - time2).TotalSeconds);
                Console.Write("\n");
            }
            Console.ReadKey();
        }
Dabei kommt das raus:

unbenanntyfzf.png
 
Zurück
Oben