NYOJ540 奇怪的排序
1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 int cmp(const void *x,const void *y){ 5 int i,j,c[10]={}; 6 int a=*(int *)x; 7 int b=*(int *)y; 8 9 for(i=0;a;i++){ 10 c[i]=a%10; 11 a/=10; 12 } 13 for(a=0,j=0;j<i;j++){ 14 a=c[j]+a*10; 15 } 16 17 for(i=0;b;i++){ 18 c[i]=b%10; 19 b/=10; 20 } 21 for(b=0,j=0;j<i;j++){ 22 b=c[j]+b*10; 23 } 24 return a-b; 25 } 26 int main() 27 { 28 int s[55]; 29 int i,n,a,b,k; 30 scanf("%d",&n); 31 while(n--){ 32 scanf("%d%d",&a,&b); 33 for(k=0,i=a;i<=b;i++) 34 s[k++]=i; 35 qsort(s,k,sizeof(s[0]),cmp); 36 for(i=0;i<k;i++) 37 printf("%d ",s[i]); 38 puts(""); 39 } 40 return 0; 41 }