https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=199
這題就把該字串由大到小剪掉小到大的數串得出的解看是否有重複 ex: 12345 54321-12345=41976 這裡要注意輸出有01234要把頭的0去掉 為了避免TL這邊我用set來儲存不重複的數值
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scn=new Scanner(System.in);
while(true) {
int n=scn.nextInt(),tot=0,count=1;
if(n==0)
break;
String arr[]=Integer.toString(n).split(""),x="",y="";
Set<Integer> set = new HashSet<Integer>();
System.out.println("Original number was "+n);
Z:
while(true) {
Arrays.sort(arr);
x="";y="";
for(int i=0;i<arr.length;i++) {
y+=arr[i];
x+=arr[arr.length-1-i];
}
tot=Integer.parseInt(x)-Integer.parseInt(y);
for(int i:set) {
if(tot==i) {
System.out.println(Integer.parseInt(x)+ " - " + Integer.parseInt(y) +" = "+tot);
System.out.println("Chain length "+count);
System.out.println();
break Z;
}
}
System.out.println(Integer.parseInt(x)+ " - " + Integer.parseInt(y) +" = "+tot);
arr=Integer.toString(tot).split("");
count++;
set.add(tot);
}
}
}
/*題目:Q263: Number Chains
作者:1010
時間:西元 2017 年10 月 */
}