https://www.luogu.com.cn/problem/P1009c++
#include<bits/stdc++.h> using namespace std; int n, a[100010], b[100010], c[100010], len, lenc = 1; int main(){ scanf("%d", &n); a[1] = 1; for(int P = 1; P <= n; P++){ int j = 0; bool k_ = true; for(int i = 1; k_; i++){ a[i] = a[i] * P + j; j = a[i] / 10; a[i] %= 10; if(a[i] == 0 && j == 0 && i > lenc){ k_ = false; } lenc = i > lenc ? i : lenc; } j = 0; for(int i = 1; i <= 1000; i++){ c[i] += a[i] + j; j = c[i] / 10; c[i] %= 10; len = i > len ? i : len; } } bool k = true; for(int i = len; i >= 1; i--){ if(c[i] == 0 && k){ continue; } k = false; printf("%d", c[i]); } printf("\n"); return 0; }
中间嵌套的2个循环 判断条件卡了很久,一直WA 基本上带个数字就发现问题了