3 条题解

  • 1
    @ 2021-5-24 13:43:03

    C++ :

    #include <iostream>
    #include <cstdio>
    using namespace std;
    int maxn(int m);
    int minn(int m);
    int main()
    {
        int n;
        scanf("%d",&n);
        int max1,min1,step=0;
        while(n!=6174){
            max1=maxn(n);
            min1=minn(n);
            n=max1-min1;
            step++;
        }
        printf("%d\n",step);
        return 0;
    }
    
    int maxn(int m)
    {
        int a=m/1000;
        int b=m/100%10;
        int c=m%100/10;
        int d=m%10;
        if(b>a){swap(a,b);}
        if(c>a){swap(a,c);}
        if(d>a){swap(a,d);}
        if(c>b){swap(b,c);}
        if(d>b){swap(b,d);}
        if(d>c){swap(c,d);}
        return a*1000+b*100+c*10+d;
    }
    
    int minn(int m)
    {
        int a=m/1000;
        int b=m/100%10;
        int c=m%100/10;
        int d=m%10;
        if(b<a){swap(a,b);}
        if(c<a){swap(a,c);}
        if(d<a){swap(a,d);}
        if(c<b){swap(b,c);}
        if(d<b){swap(b,d);}
        if(d<c){swap(c,d);}
        return a*1000+b*100+c*10+d;
    }
    
    

    信息

    ID
    123
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    66
    已通过
    43
    上传者