Left factorials: Difference between revisions

Content deleted Content added
Adding C# implementation
m →‎{{header|C sharp|C#}}: Adding a faster implementation
Line 275: Line 275:
!10000 has 35656 digits
!10000 has 35656 digits
</pre>
</pre>

Faster Implementation

<lang csharp>
using System;
using System.Numerics;

namespace LeftFactorial
{
class Program
{
static void Main(string[] args)
{
for (int i = 0; i <= 10; i++)
{
Console.WriteLine(string.Format("!{0} : {1}", i, LeftFactorial(i)));
}

for (int j = 20; j <= 110; j += 10)
{
Console.WriteLine(string.Format("!{0} : {1}", j, LeftFactorial(j)));
}

for (int k = 1000; k <= 10000; k += 1000)
{
Console.WriteLine(string.Format("!{0} : has {1} digits", k, LeftFactorial(k).ToString().Length));
}

Console.ReadKey();
}

private static BigInteger LeftFactorial(int n)
{
BigInteger result = 0;
BigInteger subResult = 1;

for (int i = 0; i < n; i++)
{
if (i == 0)
{
subResult = 1;
}
else
{
subResult *= i;
}

result += subResult;
}

return result;
}
}
}
</lang>


=={{header|D}}==
=={{header|D}}==