在我的课堂上给了我一个程序,关于从用户获取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+" ");
}
}
}
可以说没有输出,程序以无限循环运行
答案 0 :(得分:2)
因为您的k始终大于或等于0。所以您陷入了困境:
while(k>=0)
也许您想将其更改为while(k>0)
?