1 条题解

  • 0
    @ 2025-10-10 15:48:07

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    bool compare(int a,int b){
    	return a > b;
    }
    
    int main(){
    	int r[4010],i,n,k = 0,x;
    	cin>>n;
    	for(i = 0;i < n;i++){
    		cin>>x;
    		while(x != 0){
    			r[k] = x % 10;
    			x = x / 10;
    			k++;
    		}
    	}	
    	
    	sort(r,r+k,compare);
    	for(i = 0;i < k;i++){
    		cout<<r[i];
    	}
    	
    }
    
    

    Java :

    
    import java.util.Scanner;
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int num1 = scanner.nextInt();
    //        int num2 = scanner.nextInt();
    //        int num3 = scanner.nextInt();
            int[] a = new int[num1];
            int[] b = new int[100];
            double avg,x = 0;
            long s = 0;
            int count = 0;
            for (int i = 0; i < num1; i++) {
                a[i] = scanner.nextInt();
            }
            for (int i = 0; i < num1; i++) {
                while(true){
                    b[count] = qiuYu(a[i]);
                    a[i] /= 10;
                    count++;
                    if(a[i] == 0)break;
                }
            }
            int temp;
            for(int i = 0;i < count - 1;i++){
                for(int k = 0;k < count - i - 1;k++){
                    if(b[k] > b[k + 1]){
                        temp = b[k];
                        b[k] = b[k + 1];
                        b[k + 1] = temp;
                    }
                }
            }
            for (int i = count - 1; i >= 0; i--) {
                System.out.print(b[i]);
            }
    
        }
    
        public static boolean judge(int i,int j){
            int a,s = 0;
            while(i != 0){
                a = i % 10;
                s = s + a;
                i /= 10;
            }
            if(s == j)return true;
            else return false;
        }
    
        public static void paiXu(int[] a){
            int temp;
            for(int i = 0;i < a.length - 1;i++){
                for(int k = 0;k < a.length - i - 1;k++){
                    if(a[k] > a[k + 1]){
                        temp = a[k];
                        a[k] = a[k + 1];
                        a[k + 1] = temp;
                    }
                }
            }
        }
    
        public static int MAX(int[] a){
            int max = a[0];
            for (int i = 0; i < a.length; i++) {
                if(max < a[i]){
                    max = a[i];
                }
            }
            return max;
        }
    
        public static int MIN(int[] a){
            int min = a[0];
            for (int i = 0; i < a.length; i++) {
                if(min > a[i]){
                   min = a[i];
                }
            }
            return min;
        }
        public static int sum(int a){
            int x,s = 0;
            while(a != 0){
                x = a % 10;
                s = s + x;
                a /= 10;
            }
            return s;
        }
        public static boolean isPrime(int a){
            if(a <= 1)return false;
            else
            for(int i = 2;i <= Math.sqrt(a);i++){
                if(a % i == 0)return false;
            }return true;
        }
    
        public static int qiuYu(int i){
            int a;
            a = i % 10;
            return a;
        }
    }
    

    Python :

    n=int(input())
    a=input().split()
    a=list(map(int,a))
    b=[]
    for i in a:
        k=len(str(i))
        for j in range(k):
            m=int(str(i)[j:j+1])
            b.append(m)
    b=sorted(b)
    b.reverse()
    s=0
    for i in range(0,len(b)):
        s=s*10+b[i]
    print(s)
    
    • 1

    信息

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