求问,为什么WA一个点
查看原帖
求问,为什么WA一个点
263959
Tommy_Huang楼主2021/11/20 16:08
代码
#include <bits/stdc++.h>
using namespace std;
const int MAX_X = (int)2.99 * 1e7;
//考场上摸出来的不超时最大范围
int T, x, pre;
int book[MAX_X];
bool has7(int num) {
    while (num > 0) {
        if (num % 10 == 7) return true;
        num /= 10;
    }
    return false;
}
int main() {
    for (int i = 1; i <= MAX_X; i++) {
        if (book[i] == -1) continue;
        if (has7(i)) {
            int n = i, j = 1;
            while (n * j <= MAX_X) book[n * j] = -1, j++;
        } else {
            book[pre] = i;
            pre = i;
        }
    }
    scanf("%d", &T);
    while (T--) {
        scanf("%d", &x);
        printf("%d\n", book[x]);
    }
    return 0;
}

倒数第二个点,read 0 expected 8 那应该输入的是6,但是我本地捏数据输入6会正常输出8啊?

2021/11/20 16:08
加载中...