NYOJ---540奇怪的排序
2016-04-01 17:58
369 查看
奇怪的排序
时间限制:1000ms|内存限制:65535KB难度:1
描述
最近,Dr.Kong新设计一个机器人Bill.这台机器人很聪明,会做许多事情。惟独对自然数的理解与人类不一样,它是从右往左读数.比如,它看到123时,会理解成321.让它比较23与15哪一个大,它说15大。原因是它的大脑会以为是32与51在进行比较.再比如让它比较29与30,它说29大.
给定Bill两个自然数A和B,让它将[A,B]区间中的所有数按从小到大排序出来。你会认为它如何排序?
输入第一行:N表示有多少组测试数据.(2<=N<=5)
接下来有N行,每一行有两个正整数AB表示待排序元素的区间范围.(1<=A<=B<=200000B-A<=50)
输出对于每一行测试数据,输出一行,为所有排好序的元素,元素之间有一个空格.样例输入
2 815 2239
样例输出
10891112131415 303122322333243425352636273728382939 //先求出转换后的结果,在因排序元素交换时对应调换转换前的元素即可
//c #include<stdio.h> #include<string.h> #include<math.h> intreverse(intt) { intsum=0,i,len; chars[6]={'\0'};//注意初始化方式 sprintf(s,"%d",t);//整形转化为字符串,头文件为stdio.h len=strlen(s); for(i=len-1;i>=0;i--) { sum+=(s[i]-'0')*(int)pow(10,i); } returnsum; } voidswap(int*c,int*d,inti,intj) { d[j]=d[i]-d[j]+(d[i]=d[j]); c[j]=c[i]-c[j]+(c[i]=c[j]); } intpartition(int*c,int*d,intp,intr) { inti=p,j=r+1; intx=d[p]; while(1) { while(d[++i]<x&&i<r); while(d[--j]>x); if(i>=j)//结束标志 break; swap(c,d,i,j); } swap(c,d,p,j); returnj; } voidQuickSort(int*c,int*d,intp,intr) { intq; if(p<r) { q=partition(c,d,p,r); QuickSort(c,d,p,q-1); QuickSort(c,d,q+1,r); } } intmain() { intN,i,j,a,b; intc[50],d[50]; scanf("%d",&N); for(i=0;i<N;i++) { scanf("%d%d",&a,&b); for(j=0;j<=b-a;j++) { c[j]=j+a; d[j]=reverse(c[j]); } QuickSort(c,d,0,b-a);//d排序的同时,c对应排序 for(j=0;j<=b-a;j++) printf("%d",c[j]); printf("\n"); } return0; }
//c++----leida #include<iostream> #include<algorithm> usingnamespacestd; boolcmp(inta,intb) { intc,d; c=d=0; while(a)//反转后的数 { c=10*c+a%10; a/=10; } while(b)//反转后的数 { d=10*d+b%10; b/=10; } returnc<d;//升序排序 } intmain() { inti,a,b,N; intc[51]; cin>>N; while(N--) { cin>>a>>b; for(i=0;i<=b-a;i++) { c[i]=i+a; } sort(c,c+b-a+1,cmp); for(i=0;i<=b-a;i++) cout<<c[i]<<""; cout<<endl; } return0; }
相关文章推荐
- LVM 逻辑卷管理
- 笔记本
- VC++开发个人事务管理信息系统
- kernel 3.10内核源码分析--内核栈及堆栈切换
- exit()和_exit()函数
- layoutSubviews何时调用的问题
- c++作业2
- DelphiXE 显示GIF动画
- easyUI中的treeGrid---加载数据的格式
- Couldn't resolve Mac Server "mymac"
- C# 反射机制
- debian 下使用qtcreator,c++11 ,boost
- 封装的不错的解析http 命令参数的c++ 源码
- SyntaxHighlighter行号显示错误问题解决方案
- Ros kinect点云数据
- LeetCode 1 Two Sum
- JavaScript模式 For和For-in循环优化
- GDB 引起Illegal instruction: 4 错误解决办法
- 参数传递方法(Delphi1.0与win16API使用pascal方法,即从左到右)
- Linux设备模型(6)_Bus