[蓝桥杯][算法提高VIP]数字黑洞

(PAT)时做过了,再做一遍,直接模拟即可。

输入保证四位数字不全相同。

int a[5];
int n;

void get(int x)
{
    for(int i=3;i>=0;i--)
        a[i]=x%10,x/=10;
}

int calc()
{
    int res=0;
    for(int i=0;i<4;i++)
        res=res*10+a[i];
    return res;
}

int main()
{
    cin>>n;
    int cnt=0;
    while(true)
    {
        get(n);
        sort(a,a+4,greater<int>());
        int maxv=calc();
        reverse(a,a+4);
        int minv=calc();

        n=maxv-minv;
        cnt++;
        if(n == 6174) break;
    }

    cout<<cnt<<endl;
    //system("pause");
    return 0;
}
原文地址:https://www.cnblogs.com/fxh0707/p/14616235.html