階乘之和 / 洛谷P1009

題目

https://www.luogu.com.cn/problem/P1009c++

CODE

#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
基本上帶個數字就發現問題了
相關文章
相關標籤/搜索