为什么SPOJ下一个回文问题不接受此代码?

时间:2019-09-19 15:46:51

标签: c++

这里是SPOJ的名为“下一个回文”的问题

  

T个测试用例必须首先使用。对于给定的肯定   不超过1000000位数的整数K,写入   大于K的最小回文输出。数字总是   显示时不带前导零。如果K本身是回文,   输出仍然必须是下一个可能的回文。

我尝试将K之后的每个数字作为参数传递给函数pcheck(),该函数检查它是否是回文。一旦发现下一个可能的回文,标记“ f”将被设置为“ 1”并返回到main。 然后打印数字。

到目前为止,此代码已正常工作并找到了正确的答案。

#include <iostream>

using namespace std;

int pcheck(int);

int main()
{
    int t, x, p;
    cin >> t;

    for (int i = 0; i < t; i++) {
        cin >> x;
        x = x + 1;

        while (x != 0) {
            p = pcheck(x);

            if (p == 1) {
                cout << x << endl;
                break;
            }
            else {
                x = x + 1;
            }

            p = 0;
        }
    }
}

int pcheck(int t)
{
    int a, m = 0, f = 0;
    int g = t;

    while (t > 0) {
        a = t % 10;
        t = t / 10;
        m = (m * 10) + a;
    }

    if (m == g) {
        f = 1;
    }

    return f;
}

该解决方案不被接受,并在网站上被标记为“错误答案”。

0 个答案:

没有答案