【问题标题】:SPOJ small factorials problemSPOJ 小阶乘问题
【发布时间】:2011-07-04 16:47:53
【问题描述】:

这是确切的问题

你被要求计算一些小的正整数的阶乘。

输入:

一个整数t,1

输出:

对于输入时给出的每个整数 n,显示一个值为 n 的行!

示例

示例输入:

4    
1    
2    
5    
3

示例输出:

1    
2    
120    
6

我已经编写了第 24 号 SPOJ 小阶乘问题,但法官认为答案是错误的。请查看我的代码并帮助我。

class Program
{
    static void Main(string[] args)
    {
        long numOfTestCases=0;
        string factForAll = "";
        numOfTestCases = Convert.ToInt32(Console.ReadLine());
        long[] numArray = new long[numOfTestCases];
        for (long i = 0; i < numArray.Length; i++)
        {
            numArray[i]= Convert.ToInt64(Console.ReadLine());
        }
       
        foreach (var item in numArray)
        {
            long factResult = findFact(item);
            factForAll += factResult+"\n";
        }
        Console.WriteLine();
        Console.WriteLine(factForAll);
        
    }
    public static long findFact(long number)
    {
        long factorial = 1;
        if (number<=1)
        {
            factorial = 1;
        }
        for (long i = 1; i <=number; i++)
        {
            factorial *= i;
        }
        return factorial;
    }
}

【问题讨论】:

  • 您能否发布问题的链接,或者实际问题。
  • 因为没有更多信息,我猜这是错误的,因为它没有立即回答问题。您构建一个字符串并在读取所有输入后打印它,并且您不告诉他们如何突破(顺便按 F6,Enter)。

标签: c# .net


【解决方案1】:

查看第一条评论后,您需要将每个答案写在一行中,在 c3 中是“\r\n”,而不是“\n”。

【讨论】:

    【解决方案2】:

    问题指定数字在1 &lt;= n &lt;= 100 范围内。您在 long 变量中计算这些的阶乘。 long 的范围是 –92233720368547758089223372036854775807。结果很容易超出这个范围。

    例如,

    100! = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
    

    您需要使用BigInteger 之类的东西来处理这么大的数字。

    【讨论】:

    • 谢谢..我想出了并修改了代码..现在它可以工作了。但不幸的是,法官的系统未配置为在最新框架上运行,因此我的解决方案被视为错误答案
    【解决方案3】:

    C# 不是 SPOJ.com 上的最佳语言选择,因为一切都在 Unix/Linux 服务器上运行,而使用的 C# 版本实际上是 Mono 2.. 这就是为什么很多东西不支持,也不会运行的原因正如预期的那样。

    所以我建议切换到 C++ 或 Java :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-04
      • 2018-11-06
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      相关资源
      最近更新 更多