#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include <string.h>
int Fun(int n);
int main()
{
int n;
printf("请输入一个各位数字不完全相同的四位数:\n");
scanf("%d",&n);
if(n>=1111&&n%1111==0)
{ printf("输入有误\n");
return 0;
}
if(Fun(n) == 1)
printf("成功得到6174\n");
else printf("未得到6174\n");
return 0;
}
int Fun(int n)
{
int a[4],temp,n1=0,n2=0;
a[0] = n/1000;//千位数
a[1] = (n-a[0]*1000)/100;//百位数
a[2] = (n-a[0]*1000-a[1]*100)/10;//十位数
a[3] = n-a[0]*1000-a[1]*100-a[2]*10;//个位数
for(int i=0;i<4;i++)//升序排序
{
for(int j=i+1;j<4;j++)
{
if(a[i]>a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
n1 = a[0]*1000+a[1]*100+a[2]*10+a[3];
n2 = a[0]+a[1]*10+a[2]*100+a[3]*1000;
n = n2-n1;
if(n == 6174)//得到6174则返回 反之则递归
return 1;
else return Fun(n);
}