为了给学弟学妹讲课,我水了一道题……
import java.util.Arrays; import java.util.Scanner; public class NYOJ540 { public static void main(String[] args) { int from, to, T; Node node[]; Scanner sc = new Scanner(System.in); T = sc.nextInt(); int temp; while(T-->0) { from = sc.nextInt(); to = sc.nextInt(); node = new Node[to-from+1]; int j = 0; for(int i=0; i<node.length; i++) { //q已经初始化为0了 node[i] = new Node(); } for(int i=from; i<=to; i++) { node[j].p = i; temp = i; while(temp>0) { /* * 必须在大while循环构造node数组 * 否则就第一组数据正确 * 因为下面这一句用到了以前的q值 */ node[j].q = node[j].q*10 + temp%10; temp /= 10; } j++; } /* * 只看API函数,第三个参数是toIndex,以为是下标 * 谁知道具体一看不包括,wa了n次 */ Arrays.sort(node,0,to-from+1); System.out.print(node[0].p); for(int i=1; i<to-from; i++) { System.out.print(" "+node[i].p); } System.out.println(" "+node[to-from].p); } } } class Node implements Comparable<Node>{ int p; int q; public Node() { this.p = 0; this.q = 0; } @Override public int compareTo(Node o) { // TODO Auto-generated method stub Node other = o; return this.q - other.q; } }