-4
这是一个Java代码,用于从用户输入的最小数字到用户输入的最大数字打印阿姆斯特朗数。这段代码有什么问题?为什么它打印“1”?
我没有收到任何错误。问题是我的程序打印输出值为1.
我该如何解决这个问题?
package armstrong;
import java.util.Scanner;
public class armstrong {
public static void main(String[] args) {
Scanner obj=new Scanner(System.in);
System.out.println("enter min number");
int min=obj.nextInt();
System.out.println("enter max number");
int max=obj.nextInt();
int a;
for (int j = min; j <=max; j++)
{
int temp = j ;
int l=digit(j);
System.out.println(l);
int sum=0;
if(j>0)
{
a=j%10;
sum=(int) (sum+Math.pow(a,l));
j=j/10;
}
if(sum == temp)
System.out.println(temp);
//else
//System.out.println(n+ " is not an armstrong number");
}
}
//java.lang.Math.pow(double a, double b)
public static int digit(int x){
int z=0;
if(x<0)
{
x=x * -1;
}
else if(x==0)
{
x=1;
}
while(x>0)
{
x=x/10;
z++;
}
return z;
}
}
欢迎来到SO。你的格式不太正确。如果您知道如何使用eclipse(或gulp,jdb),那么以调试模式运行它。否则,只要它发生变化,就打印循环变量。目视检查代码以找到左值。 – jeff6times7