#include<bits/stdc++.h>
using namespace std;
int sd[10];
int main(){
int cnt1=0,a;
cin>>a;
for(;;){
if(a==495){
break;
}
sd[0]=a/1%10;
sd[1]=a/10%10;
sd[2]=a/100%10;
sort(sd,sd+3);
if(sd[0]==0){
a=(sd[2]*100+sd[1]*10+sd[0])-(sd[1]*100+sd[2]);
}else{
a=(sd[2]*100+sd[1]*10+sd[0])-(sd[0]*100+sd[1]*10+sd[2]);
}
cnt1++;
if(a==495){
break;
}
}
cout<<cnt1;
return 0;
}
题目描述
给定⼀个三位数,要求各位不能相同。例如, 352是符合要求的,112 是不符合要求的。将这个三位数的三个数字重 新排列,得到的最⼤的数,减去得到的最⼩的数,形成⼀个新的三位数。对这个新的三位数可以重复上述过程。神 奇的是,最终⼀定会得到495 !
试试看,重新排列352 ,得到的最⼤数为532 ,最⼩数为235 ,它们的差是297 ;变换297 ,得到972-279=693 ;变换693 ,963-369=594 ;变换594 ,954-459=495 。因此, 经过4次变换得到了495 。
现在,输⼊的三位数,你能通过编程得出,这个三位数经过多少次变换能够得到495吗?
输入格式
输⼊⼀⾏,包含⼀个符合要求的三位数N 。
输出格式
输出⼀⾏,包含⼀个整数C ,表⽰经过C 次变换得到495 。
样例输入content_copy
352
样例输出content_copy
4