NYOJ 57(6174问题)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include<stdio.h>
#include<stdlib.h>
int c[4];
void fun(int num,int c[])
{
    int i=0;
    while(num>0)/*不能有等号,否则死循环*/
    {
        c[i++]=num%10;
        num/=10;
    }
}
int cmp(const void *a,const void *b)
{
    return *(int *)a-*(int *)b;
}
int main()
{
    int T,num,a,b,count,ans;int i;
    scanf("%d",&T);
    while(T--)
    {
        i=0;count=0;ans=0;
        scanf("%d",&num);
        fun(num,c);
        while(ans!=6174)
        {
        //  printf("%d\n",ans);
            qsort(c,4,4,cmp);
            a=c[0]*1000+c[1]*100+c[2]*10+c[3];/*刚开始数字搞混啦*/
            b=c[3]*1000+c[2]*100+c[1]*10+c[0];
            //printf("%d    %d\n",b,a);
            ans=b-a;
            //for(i=0;i<888888888;i++);
            count++;
            fun(ans,c);
        }
        printf("%d\n",count+1);
    }
    return 0;
}

  

posted @   加拿大小哥哥  阅读(308)  评论(0编辑  收藏  举报
(评论功能已被禁用)
点击右上角即可分享
微信分享提示