本人刚开始学编程,遇到一个问题:{24,12,46,78,98,83}把这组数据排序,要求是每个数的十位和个位相加后得到的值排序,如果相加后还是两位数,那再进行相加,
直到加成一位数后排序。排序是按这个方法,但是最后要输出的是这组数据排序后的顺序,我不知道怎么把排序后的数(就是做了相加后排序),再还原成原来这组数据
的数输出。不知道说得明白不,想了很久也想不出来,本人是菜鸟,想问下各位高手有什么好的算法没有?
直到加成一位数后排序。排序是按这个方法,但是最后要输出的是这组数据排序后的顺序,我不知道怎么把排序后的数(就是做了相加后排序),再还原成原来这组数据
的数输出。不知道说得明白不,想了很久也想不出来,本人是菜鸟,想问下各位高手有什么好的算法没有?
Arrays.sort(arr,new Comparator<String>(){ @Override
public int compare(String o1, String o2) {
// TODO Auto-generated method stub
int i1 = new Integer(o1);
int i2 = new Integer(o2);
int r1=0,r2=0;
while(i1!=0){
r1 += i1%10;
i1 = i1/10;
}
while(i2!=0){
r2 += i2%10;
i2 = i2/10;
}
return r1-r2;
}
});
for(String s:arr){
System.out.print(s+" ");
}