类型或命名空间名称' Numerics'命名空间中不存在'系统'

时间:2013-08-05 20:13:39

标签: c# mono

我正在problem 25解决Project Euler。我在C#中为它编写了一个代码。但是在这种情况下,我需要使用“BigInt”,因为Int64不足以容纳数字。但是,当我放置using System.Numerics;时,它会在编译期间给出错误消息(标题中的消息)。为什么是这样?我使用的是Mono 2.10.9。

我的代码:

using System;
using System.Numerics;

public class Problem_25{
    static BigInt fib(int n){
        double Phi = (1+Math.Sqrt(5))/2;
        double phi = (1-Math.Sqrt(5))/2;
        BigInt an = Convert.BigInt((Math.Pow(Phi, n)-(Math.Pow(phi, n)))/Math.Sqrt(5));
        return an;
    }
    static void Main(){
        int i = 100;
        int answer = 0;
        string current_fn = "1";
        while(true){
            current_fn = Convert.ToString(fib(i));
            if(current_fn.Length == 1000){
                answer = i;
                break;
            }
            else{
                i++;
            }
        }
        Console.WriteLine("Answer: {0}", answer);
    }
}

2 个答案:

答案 0 :(得分:5)

您需要添加对System.Numerics.dll的引用。

答案 1 :(得分:3)

mcs -r:System.Numerics.dll main.cs

man mcs应该为你赢得荣誉。

根据您的单声道版本,您可能需要使用dmcs和/或升级。

哦,它是BigInteger,而不是BigInt