最近,Dr. Kong 新设计一个机器人Bill。这台机器人很聪明,会做许多事情。惟独对自然数的理解与人类不一样,它是从右往左读数。比如,它看到123时,会理解成321。让它比较23与15哪一个大,它说15大。原因是它的大脑会以为是32与51在进行比较。再比如让它比较29与30,它说29大。 给定Bill两个自然数A和B,让它将 [A,B] 区间中的所有数按从小到大排序出来。你会认为它如何排序?
最近,Dr. Kong 新设计一个机器人Bill。这台机器人很聪明,会做许多事情。惟独对自然数的理解与人类不一样,它是从右往左读数。比如,它看到123时,会理解成321。让它比较23与15哪一个大,它说15大。原因是它的大脑会以为是32与51在进行比较。再比如让它比较29与30,它说29大。 给定Bill两个自然数A和B,让它将 [A,B] 区间中的所有数按从小到大排序出来。你会认为它如何排序?
第一行: N 表示有多少组测试数据。 接下来有N行, 每一行有两个正整数A B 表示待排序元素的区间范围。 2<=N<=5 1<=A<=B<=200000 B-A<=50。
对于每一行测试数据,输出一行,为所有排好序的元素,元素之间有一个空格。
#include<stdio.h>
int a[200010];
int b[200010];
int tmp(int a)
{
int ans=0;
while(a)
{
ans+=ans*10+a%10;
a/=10;
}
return ans;
}
int main()
{
int test,n,m,i,j,t;
scanf("%d",&test);
while(test--)
{
scanf("%d%d",&n,&m);
for(i=n;i<=m;i++)
{
a[i]=tmp(i);
b[i]=i;
}
for(i=n;i<=m;i++)
{
for(j=i+1;j<=m;j++)
{
if(a[i]>a[j])
{
t=a[i]; a[i]=a[j]; a[j]=t;
t=b[i]; b[i]=b[j]; b[j]=t;
}
}
}
printf("%d",b[n]);
for(i=n+1;i<=m;i++)
{
printf(" %d",b[i]);
}
printf("\n");
}
return 0;
}
原文:http://blog.csdn.net/hdd871532887/article/details/41925925