有人可以解释为什么此代码无法正常工作吗?

时间:2019-07-23 15:56:59

标签: java

在我的课堂上给了我一个程序,关于从用户获取2到10(n)之间的整数用户输入并打印所有'n'个数字的回文数。我想出了一个代码,但是看来不能正常工作。我自己,我找不到逻辑错误,所以有人可以帮忙提供此代码并提出任何建议吗?

回文数是一个与回文数相同的数字。

    import java.util.Scanner;
    public class npalindrome
    {
    public static void main()
    {
    int i,j,k,l=0,n,r=1,p;
    Scanner sc=new Scanner(System.in);
    System.out.println("Enter your number between 2 to 10");
    n=sc.nextInt();
    for(i=(int)Math.pow(10,n-1);i<=((int)Math.pow(10,n)-1);i++)
    {
        k=i;
        r=0;

        l=0;

        while(k>=0)
        {
            r=k%10;

            l=(l*10)+r;

            k=k/10;
        }
        if(l==i)
        {
            System.out.println(i+" ");
        }
    }
}

可以说没有输出,程序以无限循环运行

1 个答案:

答案 0 :(得分:2)

因为您的k始终大于或等于0。所以您陷入了困境:

while(k>=0)

也许您想将其更改为while(k>0)