using System;
using System.Diagnostics;
public class Test
{
public static void Main()
{
Console.WriteLine("Original");
Console.WriteLine(Original());
Console.WriteLine(TimeCalcOriginal());
Console.WriteLine("PI3");
Console.WriteLine(PI3());
Console.WriteLine(TimeCalcPI3());
Console.ReadKey();
}
public static decimal PI3()
{
decimal pi = 4m, iteration = 3m;
do
{
pi -= 4m / iteration;
iteration += 2m;
pi += 4m / iteration;
iteration += 2m;
//Debug.WriteLine(pi);
} while (Decimal.Round(pi, 5) != 3.14159M);
return Decimal.Round(pi, 5);
}
public static double Original()
{
double number = 0;
double pi;
int i = 1;
do
{
if ((i / 2) % 2 == 0)
{
number += (double)(1) / i;
}
else
{
number -= (double)(1) / i;
}
pi = 4 * number;
i += 2;
} while (Math.Round(pi, 5) != 3.14159);
return Math.Round(pi, 5);
}
public static System.TimeSpan TimeCalcOriginal()
{
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i <= 50; i++)
{
Original();
}
sw.Stop();
return sw.Elapsed;
}
public static System.TimeSpan TimeCalcPI3()
{
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i <= 50; i++)
{
PI3();
}
sw.Stop();
return sw.Elapsed;
}
}