-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