0分求助
查看原帖
0分求助
1331835
Jason20110704楼主2024/8/9 21:41
#include<bits/stdc++.h>
using namespace std;
int a[200] = {1, 1}, s[200];
void jia(int a1[], int b1[]) {
    int lena = a1[0];
    int lenb = b1[0];
    a1[0] = 0;
    b1[0] = 0;
    s[0] = 0;
    while(s[0] <= lena || s[0] <= lenb) {
        s[++s[0]] = a1[s[0]] + b1[s[0]];
        b1[0]++;
        s[s[0] + 1] += s[s[0]] / 10;
        s[s[0]] %= 10;
    }
    while(s[0] > 1 && s[s[0]] == 0)
        s[0]--;
}
void cheng(int a2[], int b2) {
    int lena = a2[0];
    a2[0] = 0;
    int x = 0;
    while(a2[0] <= lena + b2 / 10) {
        a2[++a2[0]] *= b2;
        a2[a2[0]] += x;
        x = 0;
        if(a2[a2[0]] >= 10) {
            x = a2[a2[0]] / 10;
            a2[a2[0]] %= 10;
        }
    }
    while(a2[0] > 1 && a2[a2[0]] == 0)
        a2[0]--;
}
void print(int x[]) {
    for(int i = x[0]; i >= 1; i--)
        cout << x[i];
}
int main() {
    int n;
    cin >> n;
    for(int i = 1; i <= n; i++) {
        cheng(a, i);
        jia(s, a);
    }
	print(s);
    return 0;
}

在自己的Windows系统上没问题,洛谷的Linux在线IDE就过不了

2024/8/9 21:41
加载中...