C++ 求大佬解答 wa了最后一个
查看原帖
C++ 求大佬解答 wa了最后一个
791300
Liquidice楼主2022/9/23 14:46
#include <iostream>
#include <cstring>
#include <algorithm>
#include <math.h>
using namespace std;

struct hugeint
{
    int arr[10004] = {0};
    int len = 1;
};

hugeint fec(long long, hugeint);

hugeint jia(hugeint a, hugeint b)
{
    hugeint ans;
    ans.len = max(a.len, b.len);
    for (int i = 1; i <= ans.len; i++)
    {
        ans.arr[i] += a.arr[i] + b.arr[i];
        ans.arr[i + 1] += ans.arr[i] / 10;
        ans.arr[i] %= 10;
    }
    if (ans.arr[ans.len + 1] > 0)
    {
        ans.len += 1;
    }
    return ans;
}
hugeint cheng(hugeint a, hugeint b)
{
    hugeint ans;
    ans.len = a.len + b.len - 1;
    for (int j = 1; j <= a.len; j++)
    {
        for (int i = 1; i <= b.len; i++)
        {
            ans.arr[j + i - 1] += a.arr[j] * b.arr[i];
            ans.arr[j + i] += ans.arr[j + i - 1] / 10;
            ans.arr[j + i - 1] %= 10;
        }
    }
    if (ans.arr[ans.len + 1] > 0)
    {
        ans.len += 1;
    }
    return ans;
}

void print(hugeint a)
{
    for (int i = a.len; i > 0; i--)
    {
        cout << a.arr[i];
    }
    cout << endl;
}
int main()
{
    long long n = 1;
    hugeint S;
    hugeint t;
    hugeint temp;
    hugeint null;
    int x = 1;
    cin >> n;
    null.arr[1] = 1;
    for (int i = 0; i < n;) // jia
    {
        temp = null;
        for (int i = n; i > 0; i--)
        {
            t.arr[1] = i;
            temp = cheng(temp, t);
        }
        S = jia(S, temp);
        n = n - 1;
    }

    print(S);
    system("pause");
}
2022/9/23 14:46
加载中...