以下是我的code,已經先把數字建表放好了
不過速度還是很慢...
請高手幫忙看一下那裡可以改善?
謝謝:)
import java.util.Scanner;
import java.math.*;
public class Practice
{
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
int sum;
int digit[]=new int[9];
String input;
int temp;
int index;
int number[]=new int[1000000];
int index_number=0;
for(int i=1;i<1000000;i++)
{
sum=0;
index=0;
temp=i;
while(temp>0)
{
digit[index++]=temp%10;
temp/=10;
}
for(int j=0;j<index;j++)
sum+=Math.pow(digit[j], index);
if(sum == i)
number[index_number++]=i;
}
int a,b;
boolean has_number;
while(in.hasNext())
{
has_number=false;
a=in.nextInt();
b=in.nextInt();
for(int i=0;i<index_number;i++)
{
if(number[i]>=a)
{
while(number[i]<=b)
{
System.out.print(number[i]+" ");
has_number=true;
i++;
}
break;
}
}
if(has_number == false)
System.out.println("none");
else
System.out.println();
}
}
}