有人可以解释为什么这段代码不起作用吗?

我在课堂上得到了一个程序,该程序是关于从用户那里获取 2 到 10 (n) 之间的整数用户输入并打印所有“n”个数字回文数字。我想出了一个代码,但它似乎不起作用properly.Myself,我找不到逻辑错误,所以有人可以帮助处理这段代码并提出任何更改建议吗?


回文数是从数的两边读出相同的数。


    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+" ");

        }

    }

}

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


墨色风雨
浏览 89回答 1
1回答

凤凰求蛊

因为你的k总是大于等于0。所以你陷入了你的while:while(k>=0)也许您想将其更改为 just&nbsp;while(k>0)?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java