1 条题解

  • 0
    @ 2025-9-10 0:06:26

    C++ :

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    long long len;
    char k[20000];
    char d[20000];
    char x[20000];
    long long r[20000];
    long long  t=1,z;
    char ddx(char b[])
    {
    	sort(b,b+len,greater<char>());	
    }
    char xdd(char b[])
    {
    	sort(b,b+len,less<char>());
    }
    bool cx(long long q)
    {
    	for(long long i=1;i<=z-1;i++)
    	  if(r[i]==q)
    	  	return 1;
          return 0;
    }
    int main()
    {
    	//freopen(""kblk.in"",""r"",stdin);
    	//freopen(""kblk.out"",""w"",stdout);
    	long long t=-1;
    
       while(scanf("%s",&k)!=EOF)//对于不知道多少组输入数据的解决办法 
       {
          z=1;//下标注意要清0; 
       	  sscanf(k,"%lld",&t);
       	  memset(r,0,sizeof(r));//对于每一个数,r数组别忘了清0;
       	  r[z]=t;//要加上本身这个数字,坑这了 ;循环节有可能从他本身就是。 
    	  while(cx(t)==0)
    	    {	
    			if(strlen(k)==4)
    			{
    		    	printf("%s\n","6174");
    		        continue;
    			}
    			else
    		    	 len=strlen(k);
    				ddx(k);
    				strcpy(d,k);
    				xdd(k);
    				strcpy(x,k);
    				long long ds,xs;
    				sscanf(d,"%lld",&ds);
            		sscanf(x,"%lld",&xs);		
    				t=ds-xs;		
    				r[++z]=t;
    				sprintf(k,"%lld",t);                                  
    	    }
    	 
    		for(long long  i=1;i<=z;i++)
    			{
    				if(r[i]==t)
    				{
    			        for(long long j=i;j<=z-2;j++)			            	
    				     	cout<<r[j]<<' ';
    					cout<<r[z-1];	//题库最后的空格是不忽略的			            			    	                    
    	                cout<<endl;	
    	                break;
    	            }
    			}
    	    continue;
       }
      
    }
    
    
    • 1

    信息

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