1 条题解

  • 0
    @ 2025-4-7 21:41:51

    C :

    #include <stdio.h>
    int arrange(int *arr){
        int i,j,t;
        for(i=0;i<4;i++){
            for(j=0;j<3;j++){
                if(arr[j]<arr[j+1]){
                    t=arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = t;
                }
            }
        }
        return 1;
    }
    int sepNum(int *d, int num){
        d[0]=num%10;
        d[1]=num/10%10;
        d[2]=num/100%10;
        d[3]=num/1000;
        return 1;
    }
    int main(){
        int i=0,num,newnum,n;
        int a,d[4];
        scanf("%d",&n);
        while(n--){
            scanf("%d",&num);
            sepNum(d,num);
            while(newnum!=6174){
                arrange(d);
                newnum= d[0]*1000+d[1]*100+d[2]*10+d[3] - d[3]*1000-d[2]*100-d[1]*10-d[0];
                sepNum(d,newnum);
                i++;
            }
            printf("%d\n",i+1);
            i=0;
            newnum=0;
        }
        return 1;
    }
    

    Java :

    import java.util.Scanner;
    public class Main
    {
    	public static void main(String[] args)
    	{
    		Scanner sc=new Scanner(System.in);
    		int n=sc.nextInt();
    		while(n-->0)
    		{
    			String str=sc.next();
    			String str1=getAnswer(str);
    			int count=1;
    			while(!str1.equals(str))
    			{
    				count++;
    				str=str1;
    				str1=getAnswer(str1);
    			}
    			System.out.println(count);
    		}
    	}
    	public static String getAnswer(String str)
    	{
    		char[] ch=str.toCharArray();
    		for(int i=0;i<ch.length;i++)
    		{
    			ch[i]=str.charAt(i);
    		}
    		maxbubbleSort(ch);
    		String a=String.valueOf(ch);
    		minbubbleSort(ch);
    		String b=String.valueOf(ch);
    		int c=Integer.parseInt(a)-Integer.parseInt(b);
    		return String.valueOf(c);
    	}
    	public static void maxbubbleSort(char ch[])
    	{
    		for(int i=0;i<ch.length;i++)
    		{
    			for(int j=0;j<ch.length-i-1;j++)
    			{
    				if(ch[j]<ch[j+1])
    				{
    					char temp=ch[j];
    					ch[j]=ch[j+1];
    					ch[j+1]=temp;
    				}
    			}
    		}
    	}
    	public static void minbubbleSort(char ch[])
    	{
    		for(int i=0;i<ch.length;i++)
    		{
    			for(int j=0;j<ch.length-i-1;j++)
    			{
    				if(ch[j]>ch[j+1])
    				{
    					char temp=ch[j];
    					ch[j]=ch[j+1];
    					ch[j+1]=temp;
    				}
    			}
    		}
    	}
    }        
    
    • 1

    信息

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