gpt4 book ai didi

c - 我已经为 spoj 问题 "The Next Palindrome"编写了代码,但在我的提交中收到了错误的答案消息

转载 作者:太空宇宙 更新时间:2023-11-04 03:11:21 25 4
gpt4 key购买 nike

每次提交时,我总是收到错误的答复信息。请帮我解决代码问题。

每次提交的消息只是错误答案

我已经尝试了所有极端情况和异常输入,代码似乎可以正常工作,但提交未被接受。

#include <stdio.h>
#include <stdbool.h>

int getLength(long long x) {
int length = 0;
while (x != 0) {
x = x / 10;
length++;
}
return length;
}

bool even(long long x) {
int checkv = 0;
int pal = x;
int con = 0;
int length = getLength(pal);
length = length / 2;
while (length--) {
con = pal % 10;
checkv = checkv * 10 + con;
pal = pal / 10;
}
if (pal == checkv)
return true;
else
return false;
}

bool odd(long long x) {
int checkv = 0;
int pal = x;
int con = 0;
int length = getLength(pal);
length = length / 2;
while (length--) {
con = pal % 10;
checkv = checkv * 10 + con;
pal = pal / 10;
}
pal = pal / 10;
if (pal == checkv)
return true;
else
return false;
}

bool checkPal(long long x) {
int length = getLength(x);
if (length % 2 == 0)
return even(x);
else
return odd(x);
}

void getPal(long long x) {
long long pal = x + 1;
bool again = true;
while (again) {
if (checkPal(pal))
again = false;
else
pal++;
}
printf("%lli\n", pal);
}

void main() {
int n;
scanf("%d", &n);
long long a[n];
int i = 0;
while (n--) {
scanf("%lli", &a[i]);
getPal(a[i]);
i++;
}
}

我认为问题出在输入上,即我将输入读取为long long,但实际输入可能已经超过了这个限制。

最佳答案

注意您的编译器警告。

bool even(long long x){
int checkv = 0;
int pal = x; // compiler warning here
int con = 0; // used to take value from pal

通过将 long long x 分配给 int pal,您会立即失去它的重要性。同样的错误也出现在另一个函数中:

bool odd(long long  x){
int checkv = 0;
int pal = x; // compiler warning here
int con = 0; // used to take value from pal

关于c - 我已经为 spoj 问题 "The Next Palindrome"编写了代码,但在我的提交中收到了错误的答案消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56008131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com