c++ - 阶乘 - 数组 - C++

标签 c++ arrays integer factorial

问题是计算一个数的阶乘。我已经调试了我的代码,它适用于任何输入并为所有给定的测试用例生成正确 输出。但是,我仍然在 SPOJ 上得到错误的答案。

问题:

一个整数t,1<=t<=100,表示测试用例的数量,后面是t行,每行包含一个整数n,1<=n<=100。

任何见解都会有所帮助。我是否遗漏了一些关键的测试用例?

我的代码:

#include <iostream>
using namespace std;
int main()
{

long T;
cin>>T;
while(T--)
{
    long long N;

    long long index, count;
    cin>>N;
    long long a[300];
    long long i=1;
    a[0]=1; count=1;
    while(i<=N)
    {

        long long z=0;
        long long k; long long x;
        long long j=i;
        long long temp=0; long long current=0;
        for(k=0; k<count;k++)
        {
            x=(a[k]*j)+temp;
            a[k]=x%10;
            temp=x/10;
        }
        if(temp>0)
            while(temp>0)
            {
                a[k]=temp;
                temp=temp/10;
                k++;
                count++;
            }


        i++;
    }


    for(long long g=count-1; g>=0; g--)
        cout<<a[g];
        cout<<"\n";

}
return 0;
}

最佳答案

这一行:

a[k]=temp;

应该是:

a[k]=temp % 10;

关于c++ - 阶乘 - 数组 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23874020/

相关文章:

c++ - vector 中的移动元素未按预期工作

c++ - 如何使用 C++ 通过网络传输缓冲区?

Java - 每次调用 int size 方法时,该方法的值都会增加 1

arrays - Excel VBA - redim arr 时类型不匹配

javascript - 如何在不使用 for 循环的情况下迭代数组的一部分

c - 在 c 中,赋值使指针无需强制转换,反之亦然

c - 通过将数字分成数组然后合并来交换数字顺序

java - Java中如何将10位电话号码解析为整数

c++ - 如何使用 Visual C++/PCSC 以编程方式加载 Java 卡小程序(.cap 文件)

c++ - 我可以使用 try catch 语句来捕获任何错误而不是具体错误吗?