Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SPOJ-PALIN-NZEC错误_Java - Fatal编程技术网

Java SPOJ-PALIN-NZEC错误

Java SPOJ-PALIN-NZEC错误,java,Java,我使用了下面的代码来回答这个问题,但当我在SPOJ上提交它时,它总是给我NZEC错误。我的代码在Eclipse上或通过cmd完全运行 import java.util.Scanner; import java.util.ArrayList; public class Main { public static void main(String[] args) { int line,num,numb,rev = 0,r,i,flag; ArrayList

我使用了下面的代码来回答这个问题,但当我在SPOJ上提交它时,它总是给我NZEC错误。我的代码在Eclipse上或通过cmd完全运行

import java.util.Scanner;
import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {
        int line,num,numb,rev = 0,r,i,flag;
        ArrayList <Integer> nums=new ArrayList <Integer>();
        Scanner b=new Scanner(System.in);
        Scanner a=new Scanner(System.in);
        line=b.nextInt();
        for(i=0;i<line;i++)
        {flag=0;
            num=a.nextInt();
            num=num+1;
            numb=num;
            do {
                while(numb>0)
                {r=numb%10;
                    rev=(rev*10)+r;
                    numb=numb/10;
                }
                if (rev==num)
                {nums.add(num);
                    rev=0;
                    flag=1;
                    break;
                }
                else
                {num=num+1;
                    numb=num;
                rev=0;}
            }while(flag==0);
        }
        for (int newnum : nums)
        {System.out.println(newnum);}
    }
}
import java.util.Scanner;
导入java.util.ArrayList;
公共班机{
公共静态void main(字符串[]args){
int行,num,numb,rev=0,r,i,标志;
ArrayList nums=新的ArrayList();
扫描仪b=新的扫描仪(System.in);
扫描仪a=新的扫描仪(System.in);
line=b.nextInt();
对于(i=0;i0)
{r=numb%10;
rev=(rev*10)+r;
麻木=麻木/10;
}
如果(rev==num)
{nums.add(num);
rev=0;
flag=1;
打破
}
其他的
{num=num+1;
numb=num;
rev=0;}
}while(flag==0);
}
for(int newnum:nums)
{System.out.println(newnum);}
}
}

您所犯的错误是将
num
存储在
整数数据类型中

不超过1000000位的K(它是
,并且不超过该

整数
不可能存储如此庞大的
。因此,您必须使用
字符串
来解决此特定问题。请在eclipse中尝试此输入

45465465465465465446546546464646


你会意识到你错在哪里

我不理解你所做的更改,我刚刚开始使用Java。你能解释一下或者参考一些有用的资源吗?哦,这意味着我必须把整个程序从整数转换成字符串。即使在检查回文时,我也不应该使用数学方法,而是应该存储字符串的反面,然后将其与原始字符串进行比较。那么这种方法正确吗?@yash10p:-是的,你必须使用
字符串,你可以这样做。.还有另一种方法。.你可以将
第一个索引处的
数字
最后一个索引
进行比较,然后是第二个索引
到第二个最后一个索引
等等,如果它们是相同的,那么就可以了,否则就不会是苍白的