1 条题解

  • 0
    @ 2025-10-10 15:45:27

    C :

    #include<stdio.h>
    #include<string.h>
    int main()
    {
    	int a[20];
    	int t,i=1,min,b,z;
    	scanf("%d",&t);
    	while(t>0)
    	{
    		a[i]=t%10;
    		t=t/10;
    		i++;
    	}
    
    	for(int k=1; k<=i-1; k++)
    	{
    		min=k;
    		for(int j=k; j<=i-1; j++)
    		{
    			if(a[min]>=a[j])
    			{
    				min=j;
    			}
    		}
    		b=a[k];
    		a[k]=a[min];
    		a[min]=b;
    	}
    	for(int k=1; k<=i-1; k++)
    	{
    		if(a[k]!=0)
    		{
    			z=a[k];
    			a[k]=a[1];
    			a[1]=z;
    			break;
    		}
    	}
    	for(int k=1; k<=i-1; k++)
    	{
    		printf("%d",a[k]);
    	}
    	printf("\n");
    }
    

    C++ :

    #include<iostream>
    #include <string.h> 
    using namespace std;
    int main(){
    	string str="";
    	cin>>str;
    	char arr[20];
    	strcpy(arr, str.c_str());
    	for(int k=0;k<strlen(arr);k++){
    		for(int i=0;i<strlen(arr)-1;i++){
    		if(arr[i]>arr[i+1]){
    			char tempChar=arr[i];
    			arr[i]=arr[i+1];
    			arr[i+1]=tempChar;
    		}
    	}
    }
    	string s(&arr[0],&arr[strlen(arr)]);
    	cout<<s<<endl;
    	return 0;	   
    }
    

    Pascal :

    var
      s:string;
      i,j:integer;
      a:array[0..9] of integer;
    begin
      readln(s);
      for i:=1 to length(s) do
        inc(a[ord(s[i])-ord('0')]);
      for i:=1 to 9 do
        if a[i]<>0 then begin
          write(i);
          dec(a[i]);
          break;
        end;
      for i:=0 to 9 do
        if a[i]<>0 then
          for j:=1 to a[i] do
            write(i);
      writeln;
    end.
    

    Java :

    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            String oldstr = sc.nextLine();
            System.out.println(sort(oldstr));
        }
        public static String sort(String str){
            //转成字符数组
            char [] c = str.toCharArray();
            //从小到大排序
            Arrays.sort(c);
            //如果左边第一位为0则需要与往右第一个不为零的调换位置
            char t = 0;
            String newstr = "";
            for(int i = 0;i<=c.length - 1;i++){
                if(c[i] != '0' ){
                    t = c[i];
                    c[i] =  c[0];
                    c[0] = t;
                    break;
                }
            }
            for(int i = 0;i<= c.length - 1;i++){
                newstr += c[i];
            }
            return newstr;
        }
    }
    

    Python :

    n=int(input())
    st1=str(n)
    l=[ int(i) for i in str(n)]
    l.sort()
    for i in range(0,len(l)):
        if l[i-1]==0 and l[i]!=0:
            l[0]=l[i]
            l[i]=0
            for j in l:
                print(j,end='')
            break
    if l[0]!=0:
        for i in l:
            print(i,end='')
    
    • 1

    信息

    ID
    112
    时间
    1000ms
    内存
    512MiB
    难度
    9
    标签
    递交数
    15
    已通过
    3
    上传者