[GESP2309二级] 数字黑洞

给定一个三位数,要求各个位不能相同(这句话是题目的自我限制,不需要你写条件再判断一次)

1、输入一个数字

2、判断是不是495,如果是,输出变换次数

3、如果不是495,找出这个三位数的最大最小数字,重新组合成两个数进行计算,并统计变换次数

4、重复2、3步骤,直到输出次数

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    int cnt=0;
    while(n!=495){
        int a=n%10,b=n/10%10,c=n/100;
        if(a<b) swap(a,b);
        if(a<c) swap(a,c);
        if(b<c) swap(b,c);
        int big=a*100+b*10+c;
        int small=c*100+b*10+a;
        n=big-small;
        cnt++;
    }
    cout<<cnt;
    return 0;
}