ZOJ:P1131 KKT数组502近似排序
KKT数组502近似排序
描述
写一个程序,从输入文件读入一对正整数 x 和 y ,将这两个数之间(包括这两个数本身)的所有数按下述特别规则排序后输出。该特别规则是:按两数倒过来的值进行比较决定其大小,如 30 倒过来为 3 ,29 倒过来为 92 ,则 29 大于 30 。
输入
一行两个正整数 x 和 y ,用一个空格隔开。
输出
包括 y-x+1 行,每行一个正整数,按两数倒过来的值进行比较决定其大小,然后由小到大输出。
输入样例 1
22 39
输出样例 1
30 31 22 32 23 33 24 34 25 35 26 36 27 37 28 38 29 39
提示
数据范围:0 < x <= y < 10^9 ,y - x <= 100。
代码:
#include
using namespace std;
int n,m,a[110],b[110];
int dao(int n){
int ans=0;
while(n>0){
ans=n%10+ans*10;
n/=10;
}
return ans;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=n;i<=m;i++)a[i-n+1]=i;
for(int i=n;i<=m;i++){
b[i-n+1]=dao(a[i-n+1]);
}
for(int i=n;i<=m;i++){
for(int j=n;j
if(b[j-n+1]>b[j-n+1+1]){
swap(b[j-n+1],b[j-n+1+1]);
swap(a[j-n+1],a[j-n+1+1]);
}
}
}
for(int i=n;i<=m;i++)printf("%d\n",a[i-n+1]);
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
