求助
查看原帖
求助
875806
liupan2010楼主2023/5/8 13:04
#include<bits/stdc++.h>
#define ll long long
#define str string
using namespace std;
const int maxn=1000001;
bool cmp(char a,char b){
	return a>b;
}
ll s2i(str y){
	int len=y.size(),ans=0;
	for(int i=0;i<len;i++){
		ans=ans*10+y[i]-48;
	}
	return ans;
}
ll solve(ll x){
	ll t1,t2;
	str s=to_string(x);
	sort(s.begin(),s.end(),cmp);
	t1=s2i(s);
	sort(s.begin(),s.end());
	t2=s2i(s);
	return t1-t2;
}
ll num[maxn],a,now;
bool check(ll n){
	for(int i=1;i<=now;i++){
		if(num[i]==n&&i!=1){
			for(int j=1;j<=now;j++){
				cout<<num[j]<<' ';
			}	
			puts("");
			return false;
		}
	}
	now++;
	return true; 
}
int main(){
	while(cin>>a){
		memset(num,0,sizeof(num));
		now=0;
		while(check(a)){
			num[now]=a;
			a=solve(a);
		}
	}
	return 0;
}
2023/5/8 13:04
加载中...