fork(2) download
  1. using System;
  2. using System.Diagnostics;
  3.  
  4. public class Test
  5. {
  6. public static void Main()
  7. {
  8. Console.WriteLine("Original");
  9. Console.WriteLine(Original());
  10. Console.WriteLine(TimeCalcOriginal());
  11. Console.WriteLine("PI3");
  12. Console.WriteLine(PI3());
  13. Console.WriteLine(TimeCalcPI3());
  14. Console.ReadKey();
  15. }
  16.  
  17. public static decimal PI3()
  18. {
  19. decimal pi = 4m, iteration = 3m;
  20. do
  21. {
  22. pi -= 4m / iteration;
  23. iteration += 2m;
  24. pi += 4m / iteration;
  25. iteration += 2m;
  26. //Debug.WriteLine(pi);
  27. } while (Decimal.Round(pi, 5) != 3.14159M);
  28. return Decimal.Round(pi, 5);
  29. }
  30.  
  31. public static double Original()
  32. {
  33. double number = 0;
  34. double pi;
  35. int i = 1;
  36.  
  37. do
  38. {
  39. if ((i / 2) % 2 == 0)
  40. {
  41. number += (double)(1) / i;
  42. }
  43. else
  44. {
  45. number -= (double)(1) / i;
  46. }
  47. pi = 4 * number;
  48. i += 2;
  49. } while (Math.Round(pi, 5) != 3.14159);
  50. return Math.Round(pi, 5);
  51. }
  52.  
  53. public static System.TimeSpan TimeCalcOriginal()
  54. {
  55. Stopwatch sw = new Stopwatch();
  56. sw.Start();
  57. for (int i = 0; i <= 50; i++)
  58. {
  59. Original();
  60. }
  61. sw.Stop();
  62. return sw.Elapsed;
  63. }
  64.  
  65. public static System.TimeSpan TimeCalcPI3()
  66. {
  67. Stopwatch sw = new Stopwatch();
  68. sw.Start();
  69. for (int i = 0; i <= 50; i++)
  70. {
  71. PI3();
  72. }
  73. sw.Stop();
  74. return sw.Elapsed;
  75. }
  76. }
Success #stdin #stdout 4.94s 131968KB
stdin
Standard input is empty
stdout
Original
3.14159
00:00:00.1206433
PI3
3.14159
00:00:04.7065676