RosettaCodeData/Task/Fibonacci-sequence/C-sharp/fibonacci-sequence-7.cs

7 lines
282 B
C#

static double r5 = Math.Sqrt(5.0), Phi = (r5 + 1.0) / 2.0;
static ulong fib(uint n) {
if (n > 71) throw new ArgumentOutOfRangeException("n", n, "Needs to be smaller than 72.");
double r = Math.Pow(Phi, n) / r5;
return (ulong)(n < 64 ? Math.Round(r) : Math.Floor(r)); }