using System;
using System.Numerics ;
public class Test
{
public static void Main( )
{
var fibs = new Fibonacci( ) ;
for ( var i = 0 ; i < 20 ; i++ )
{
Console.WriteLine ( fibs.Calculate ( i) ) ;
}
Console.WriteLine ( fibs.Calculate ( 10000 ) ) ;
Console.WriteLine ( fibs.Calculate ( 20000 ) ) ;
}
}
internal class Fibonacci
{
private readonly List< BigInteger> fibs = new List< BigInteger>
{
BigInteger.Zero ,
BigInteger.One
} ;
public BigInteger Calculate( int ordinalPosition)
{
if ( ordinalPosition < 0 )
{
throw new ArgumentOutOfRangeException( "ordinalPosition" , "ordinalPosition is less than zero." ) ;
}
for ( var i = this.fibs .Count ; i <= ordinalPosition; i++ )
{
this.fibs .Add ( BigInteger.Add ( this.fibs [ i - 1 ] , this.fibs [ i - 2 ] ) ) ;
}
return this.fibs [ ordinalPosition] ;
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTnVtZXJpY3M7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJdmFyIGZpYnMgPSBuZXcgRmlib25hY2NpKCk7CgkJZm9yICh2YXIgaSA9IDA7IGkgPCAyMDsgaSsrKQoJCXsKCQkJQ29uc29sZS5Xcml0ZUxpbmUoZmlicy5DYWxjdWxhdGUoaSkpOwoJCX0KCQkKCQlDb25zb2xlLldyaXRlTGluZShmaWJzLkNhbGN1bGF0ZSgxMDAwMCkpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKGZpYnMuQ2FsY3VsYXRlKDIwMDAwKSk7Cgl9Cn0KCmludGVybmFsIGNsYXNzIEZpYm9uYWNjaQp7Cglwcml2YXRlIHJlYWRvbmx5IExpc3Q8QmlnSW50ZWdlcj4gZmlicyA9IG5ldyBMaXN0PEJpZ0ludGVnZXI+Cgl7CgkJQmlnSW50ZWdlci5aZXJvLAoJCUJpZ0ludGVnZXIuT25lCgl9OwoJCglwdWJsaWMgQmlnSW50ZWdlciBDYWxjdWxhdGUoaW50IG9yZGluYWxQb3NpdGlvbikKCXsKCQlpZiAob3JkaW5hbFBvc2l0aW9uIDwgMCkKCQl7CgkJCXRocm93IG5ldyBBcmd1bWVudE91dE9mUmFuZ2VFeGNlcHRpb24oIm9yZGluYWxQb3NpdGlvbiIsICJvcmRpbmFsUG9zaXRpb24gaXMgbGVzcyB0aGFuIHplcm8uIik7CgkJfQoJCQoJCWZvciAodmFyIGkgPSB0aGlzLmZpYnMuQ291bnQ7IGkgPD0gb3JkaW5hbFBvc2l0aW9uOyBpKyspCgkJewoJCQl0aGlzLmZpYnMuQWRkKEJpZ0ludGVnZXIuQWRkKHRoaXMuZmlic1tpIC0gMV0sIHRoaXMuZmlic1tpIC0gMl0pKTsKCQl9CgkJCgkJcmV0dXJuIHRoaXMuZmlic1tvcmRpbmFsUG9zaXRpb25dOwoJfQp9
compilation info
prog.cs(2,14): error CS0234: The type or namespace name `Numerics' does not exist in the namespace `System'. Are you missing an assembly reference?
prog.cs(27,16): error CS0246: The type or namespace name `BigInteger' could not be found. Are you missing a using directive or an assembly reference?
Compilation failed: 2 error(s), 0 warnings
stdout