问题标题: 洛谷:U123395 求 N!的值

0
0

0
已采纳
方晨顺
方晨顺
中级守护
中级守护
#include<iostream>
using namespace std;
int main(){
    long long n,sum=1;
    cin>>n;
    for(int i=1;i<=n;i++)
        sum*=i; 
    cout<<sum;
    return 0;
}

如果这么写,一定只能拿个1/4分,所以要用高精度

重点代码:

    for (int i = 1;i <= n;i++) //从1一直乘到n
        {
            int x = 0; //x用来处理进位
            for (int j = 1;j <= l1;j++)
                {
                    a[j] = a[j] *i + x;
                    x = a[j] / 10;
                    a[j] = a[j] % 10;
                }
            while ( x > 0) //处理数字的长度
                {
                    l1++;
                    a[l1] += x;
                    x = a[l1] / 10;
                    a[l1] = a[l1] % 10;
                }
        }

我要回答