读入一对正整数,将这两个数之间(包括这两个数本身)的所有数按下述特别规则排序后输出,该特别规则是按两数倒过来的值进行比较决定其大小,如30倒过来为3,29倒过来为92,则29大于30.
输入要求
1行两个正整数x和y,用一个空格隔开,1<=x<=y<=10000,y-x<=100
输出要求
包括y-x+1行,每行一个正整数,按两数到过来的值进行比较决定其大小,然后由小到大输出。
输入样例
22 39
输出样例
30
31
22
32
23
33
24
34
25
35
26
36
27
37
28
38
29
int min, max;
scanf("%d %d", &min, &max);
int array[max-min];
int reversalArray[max-min];
//先初始化 数组array 和 数组reversalArray
for(int i = 0; i < max-min; i++) {
array[i] = min + i;
int num = min + i;
int reversalNum = 0;
while(num) {
reversalNum = reversalNum * 10 + num%10;
num = num / 10;
}
reversalArray[i] = reversalNum;
}
//按照 数组reversalArray 进行排序
//max-min是数组最后一个下标,它后面没有了就不能再和后面的比了,所以减去1,防止数组下标越界
for(int i = max-min-1; i >= 0; i--) {
for(int j = 0; j < i; j++) {
int tmp = 0;
if(reversalArray[j] > reversalArray[j+1]) {
tmp = reversalArray[j];
reversalArray[j] = reversalArray[j+1];
reversalArray[j+1] = tmp;
//同时交换 数组array
tmp = array[j];
array[j] = array[j+1];
array[j+1] = tmp;
}
}
}
//输出
for(int i = 0; i < max-min; i++) {
printf("%d\n",array[i]);
}
return 0;