题目描述
已知,一个任意的四位整数,将数字重新组合成一个最大的数和最小的数相减,重复这个过程,最多七步,必得6174。即7641-1467=6174。将永远出不来。求证:所有四位数数字(全相同的除外)均能得到6174。
输入输出格式
输入格式:
一个任意的四位整数。
输出格式:
输出掉进黑洞的步数。
输入样例#1:
1342
输出样例#1:
3
代码如下:
#include<bits/stdc++.h>
using namespace std;
int ans,x;
bool f(int a,int b)
{
return a<b;
}
void dfs(int n)
{
if(n==6174)
{
return;
}
int max=0,min=0,a[4]={n/1000,n%1000/100,n%1000%100/10,n%10};
sort(a,a+4,f);
for(int i=0,j=3;i<4,j>=0;i++,j--)
{
max*=10;
max+=a[i];
min*=10;
min+=a[j];
}
ans++;
dfs(min-max);
}
int main()
{
cin>>x;
dfs(x);
cout<<ans;
return 0;
}
标签:min,int,max,dfs,黑洞,数学,格式,6174
From: https://blog.csdn.net/bibibikeran/article/details/140477342