数学黑洞

#include <stdio.h>
#include <stdlib.h>
int  a[112345],t;
void qs(int a[],int l,int r)
{
    int key=a[l],i=l,j=r;
    if(l>=r)
        return;
    while(i<j)
    {
        while(i<j&&a[j]>=key)
            j--;
        a[i]=a[j];
        while(i<j&&a[i]<=key)
            i++;
        a[j]=a[i];
    }
    a[i]=key;
    qs(a,l,i-1);
    qs(a,i+1,r);
}
void f(int n)
{
    int o=0,max,min,m;
    while(n>0)
    {
        a[o++]=n%10;
        n=n/10;
    }
    qs(a,0,3);
    max=a[3]*1000+a[2]*100+a[1]*10+a[0];
    min=a[0]*1000+a[1]*100+a[2]*10+a[3];
    m=max-min;
    printf("%d ",m);
    while(m<1000)
        m=m*10;
    if(m!=6174)
    {
        f(m);
    }
    t++;
}
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        t=0;
        f(n);
        printf("\n");
        printf("%d\n",t);
    }
    return 0;
}
posted @ 2018-05-27 11:13  hum0r0  阅读(14)  评论(0)    收藏  举报