90分...哪里错了?
查看原帖
90分...哪里错了?
741244
Eason_cyx大愚若智楼主2023/2/18 16:47
#include <bits/stdc++.h>
using namespace std;
long long a[25],z[105];
int main()
{
	long long x;
	while(cin >> x)
	{
	    int allcur = 0;
    	int cnt = 0;
    	for(int i = 1;;i++)
    	{
    		memset(a,0,sizeof(a));
    		long long t = (i == 1 ? x : z[allcur]);
    		int cur = 0;
    		while(t)
    		{
    			a[++cur] = t % 10;
    			t /= 10;
    		}
    		sort(a+1,a+cur+1);
    		long long b = 0;
    		for(int i = 1;i <= cur;i++) b = b * 10 + a[i];
    		long long c = 0;
    		for(int i = cur;i >= 1;i--) c = c * 10 + a[i];
    		long long d = c - b;
    		//cout << d << ' ' << c << ' ' << b << endl;
    		bool flag = false;
    		//z[++allcur] = d;
    		for(int j = 1;j <= allcur;j++)
    		{
    			if(z[j] == d) 
    			{
    				//cout << z[i] << ' ' << d << endl;
    				cnt = j;
    				flag = true;
    				break;
    			}
    		}
    		if(flag) break;
    		else z[++allcur] = d;
    	}
    	for(int i = cnt;i <= allcur;i++) cout << z[i] << " \n"[i == allcur];
	}
	
	return 0;
}
2023/2/18 16:47
加载中...