把数据存到了集合中,本来想利用Collections.sort方法的,按照字典格式排序,但不知道为什么,排序一直失败
import java.util.*;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i = 1 ;i <= 100000;i ++){
long sum =0;
int len = String.valueOf(i).length();
int a [] = new int[len];
String si = String.valueOf(i);
for(int j = 0;j < len;j++)
a[j] = si.charAt(j)-'0';
for(int j = 0;j < len;j ++){
long count = 1;
for(int k = 1;k <= a[j];k++)
count *= k;
sum += count;
}
if(sum == i)
list.add(i);
}
Collections.sort(list);
for(int i : list)
System.out.print(i+" ");
}
}
1 2 145 40585
1 145 2 40585
因为是int类型,所以采用的是值比较。
import java.util.*;
public class Main {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
for(int i = 1 ;i <= 100000;i ++){
long sum =0;
int len = String.valueOf(i).length();
int a [] = new int[len];
String si = String.valueOf(i);
for(int j = 0;j < len;j++)
a[j] = si.charAt(j)-'0';
for(int j = 0;j < len;j ++){
long count = 1;
for(int k = 1;k <= a[j];k++)
count *= k;
sum += count;
}
if(sum == i)
list.add(i+"");
}
Collections.sort(list);
for(String i : list)
System.out.print(i+" ");
}
}