90分求助
查看原帖
90分求助
377440
Y2y7m楼主2021/11/24 21:27
#include <bits/stdc++.h>
#define int long long
using namespace std;
int a[1000],b[1000];
int f[10000010];
signed main()
{
    string s;
    while(cin>>s)
    {
        int n=s.size();
        int cnt=0;
        memset(a,0,sizeof(a));
        memset(f,0,sizeof(f));
    	for(int i=0;i<s.size();i++)
    		a[i+1]=s[i]-'0';
    	while(true)
    	{
    		sort(a+1,a+1+n);
    		long long t=0;
    		long long t1=0;
    		for(int i=1;i<=n;i++)
    			t=t*10+a[i];
    		for(int i=n;i>=1;i--)
    			t1=t1*10+a[i];
    		long long t2=t1-t;
    		int c=n;
    		long long e=t2;
    		while(t2)
    		{
    			a[c]=t2%10;
    			t2/=10;
    			c--;
    		}
    		bool flag=false;
    		for(int i=1;i<=cnt;i++)
    			if(f[i]==e)
    			{
    				for(int j=i;j<=cnt;j++)
    					printf("%lld ",f[j]);
    				printf("\n");
    				flag=1;
    				break;
    			}
    		if(flag)
    		    break;
    		f[++cnt]=e;
    	}   
    }

	return 0;
}

码风诡异,多多见谅

2021/11/24 21:27
加载中...