日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NYOJ---540奇怪的排序

發布時間:2023/12/20 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NYOJ---540奇怪的排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

奇怪的排序

時間限制:1000 ms ?|? 內存限制:65535 KB 難度:1 描述

最近,Dr. Kong 新設計一個機器人Bill.這臺機器人很聰明,會做許多事情。惟獨對自然數的理解與人類不一樣,它是從右往左讀數.比如,它看到123時,會理解成321.讓它比較23與15哪一個大,它說15大。原因是它的大腦會以為是32與51在進行比較.再比如讓它比較29與30,它說29大.

給定Bill兩個自然數A和B,讓它將 [A,B] 區間中的所有數按從小到大排序出來。你會認為它如何排序?

輸入
第一行: N表示有多少組測試數據. (2<=N<=5 )
接下來有N行,每一行有兩個正整數A B表示待排序元素的區間范圍. (1<=A<=B<=200000 B-A<=50)
輸出
對于每一行測試數據,輸出一行,為所有排好序的元素,元素之間有一個空格.
樣例輸入
2 8 15 22 39
樣例輸出
10 8 9 11 12 13 14 15 30 31 22 32 23 33 24 34 25 35 26 36 27 37 28 38 29 39
//先求出轉換后的結果,在因排序元素交換時對應調換轉換前的元素即可
//c
#include <stdio.h> #include <string.h> #include <math.h> int reverse(int t) {int sum = 0,i,len;char s[6] = {'\0'};//注意初始化方式 sprintf(s,"%d",t);//整形轉化為字符串,頭文件為stdio.hlen = strlen(s);for(i=len-1;i>=0;i--){sum += (s[i] - '0')*(int)pow(10,i);} return sum; } void swap(int *c,int *d,int i,int j) {d[j] = d[i] - d[j] + (d[i] = d[j]);c[j] = c[i] - c[j] + (c[i] = c[j]); } int partition(int *c,int *d,int p,int r) {int i = p,j = r+1;int x = 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);return j; } void QuickSort(int *c,int *d,int p,int r) {int q;if(p<r){q = partition(c,d,p,r);QuickSort(c,d,p,q-1);QuickSort(c,d,q+1,r);} } int main() {int N,i,j,a,b;int c[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");}return 0; }

?

//c++ ----leida #include <iostream> #include <algorithm> using namespace std; bool cmp(int a,int b) {int c,d;c = d = 0;while(a)//反轉后的數 {c = 10*c + a%10;a /= 10;} while(b)//反轉后的數 {d = 10*d + b%10;b /= 10;} return c < d;//升序排序 } int main() {int i,a,b,N;int c[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;}return 0; }

?

?

轉載于:https://www.cnblogs.com/520xiuge/p/5345769.html

總結

以上是生活随笔為你收集整理的NYOJ---540奇怪的排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。