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 基本上帶個數字就發現問題了