1 条题解

  • 0
    @ 2025-2-14 20:57:47

    C :

    #include <stdio.h>
    #include <string.h>
    #define MAX1 55
    int p[MAX1];
    int w[MAX1];
    
    int ireverse(int num)   //求逆序数
    {
    
        int rnum=0;
        while(num)
        {
            rnum=rnum*10 + num%10;
            num/=10;
        }
    
        return rnum;
    }
    
    int main()
    {
        int n,m,t;
        scanf("%d",&n);
        while(n--)
        {
             int a,b;
            scanf("%d%d",&a,&b);
            int len;
            len=b-a+1;
            p[0]=a;
            int i,j;
            for(i=1;i<len;i++)
    
            {
                p[i]=p[i-1]+1;
            }
    
           for(i=0;i<len;i++)
           {
              w[i]=ireverse(p[i]);
           }
           for(i=0;i<len;i++)
             {for(j=i+1;j<len;j++)
                if(w[i]>w[j])
                {t=w[i];w[i]=w[j];w[j]=t;
                m=p[i];p[i]=p[j];p[j]=m;}
             }
    
           for(i=0;i<len;i++)
           {
               printf("%d ",p[i]);
           }
            printf("\n");
        }
    
        return 0;
    }
    
    

    C++ :

    #include <cstdio>
    #include <cstdlib>
     
    int cmp(const void *a, const void *b){
        int aa = *(int *)a, bb = *(int *)b;
        int i = 0, j = 0;
        while(aa){
            i = i * 10 + aa % 10;
            aa /= 10;
        }
        while(bb){
            j = j * 10 + bb % 10;
            bb /= 10;
        }
        return i - j;
    }
     
    int main(){
        int t, a, b, *vec;
        scanf("%d", &t);
        while(t-- && scanf("%d%d", &a, &b)){
            int count = b - a + 1;
            vec = (int *)malloc(sizeof(int) * count);
            for(int i = 0; i != count; ++i)
                vec[i] = a + i;
            qsort(vec, count, sizeof(int), cmp);
            int ok = 1;
            for(int i = 0; i != count; ++i)
                if(ok) printf("%d", vec[i]), ok = 0;
                else printf(" %d", vec[i]);
            printf("\n");
            free(vec);
        }
        return 0;
    }
    

    Java :

    import java.util.Scanner;
    public class Main
    {
    	static Scanner sc=new Scanner(System.in);
    	public static void main(String[] args)
    	{
    		int N=sc.nextInt();
    		while(N-->0)
    		{
    			int A=sc.nextInt();
    			int B=sc.nextInt();
    			getSort(A,B);
    		}
    	}
    	public static void getSort(int x,int y)
    	{
    		StringBuffer sb=new StringBuffer();
    		int arr[][]=new int[y-x+1][2];
    		for(int i=0;i<y-x+1;i++)
    		{
    			arr[i][0]=x+i;
    		}
    		for(int i=0;i<y-x+1;i++)
    		{
    			sb.append(arr[i][0]);
    			arr[i][1]=Integer.parseInt(sb.reverse().toString());
    			sb.delete(0,sb.length());
    		}
    		for(int i=0;i<y-x;i++)
    		{
    			for(int j=i+1;j<y-x+1;j++)
    			{
    				if(arr[i][1]>arr[j][1])
    				{
    					int count1=arr[i][1];
    					arr[i][1]=arr[j][1];
    					arr[j][1]=count1;
    					int count0=arr[i][0];
    					arr[i][0]=arr[j][0];
    					arr[j][0]=count0;
    				}
    			}
    		}
    		for(int i=0;i<y-x+1;i++)
    		{
    			System.out.print(arr[i][0]+" ");
    		}
    		System.out.println();
    	}
    }        
    
    • 1

    信息

    ID
    553
    时间
    3000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者