c++ 最后一个数据点报错,但验算50的数据是正确的,不知道哪里出错了
查看原帖
c++ 最后一个数据点报错,但验算50的数据是正确的,不知道哪里出错了
815393
brave_heart楼主2022/10/1 17:17
#include <iostream>
#include <numeric>

using namespace std;

int main() {
    int a[101] = {};
    int b[101] = {0,1};
    int n;
    cin >> n;
    int count = 1,cx = 0,aount=1,ax=0;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= count; j++) {
            int k = b[j];
            b[j] = (cx + k * i) % 10;
            cx = (cx + k * i) / 10;
            if (j == count && cx != 0)
                count++;
        }
        for (int j = 1; j <= aount; j++) {
            int k = a[j];
            a[j] = (k + b[j] + ax)%10;
            ax = (k + b[j] + ax) / 10;
            if (j == aount && (ax != 0 || b[j + 1] != 0))
                aount++;
        }
    }
    for (int i = count; i >= 1; i--) {
        cout << b[i];
    }
    cout << endl;
    for (int i = aount; i >= 1; i--) {
        cout << a[i];
    }

    return 0;
}

就是使用数组先去计算阶乘的数据,然后加到累加数组上面,其中设置了进位。 前三个数据都通过了,最后一个报错了。

2022/10/1 17:17
加载中...