[蓝桥杯][算法提高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;
}
上一篇:3. 无重复字符的最长子串


下一篇:hdu 2795 Billboard -- 线段树