第五届河南省大学生程序设计竞赛
题解:结构体存储改变之前的数和改变之后的数,按照每个数倒着存储后排序,然后结构体输出改变之前的数就可以啦
代码:
#include <algorithm> #include <cstdio> #include <iostream> #include <cstring> using namespace std; struct rode { int x;///变化之前的数 int y;///变化之后的数 }s[105]; ///变化之后的数从小到大排序 int cmp(rode a,rode b) { return a.y<b.y; } int main() { int t; scanf("%d",&t); while(t--) { int n,m; scanf("%d %d",&n,&m); int i,j; for(i=n,j=0;i<=m;i++) { int d=i; int sum=0; s[j].x=i; while(d)///倒着取出来 { sum=sum*10+d%10; d/=10; } s[j].y=sum; j++; } sort(s,s+j,cmp); printf("%d",s[0].x); for(int i=1;i<j;i++) printf(" %d",s[i].x); printf("\n"); } return 0; }