1019 数字黑洞

注意:位数不够四位,就高位补0;

新学一个string函数。str.insert(pos,N,字符)表示在pos位置,插入N个字符。

#include"iostream"
#include<algorithm>
using namespace std;

bool cmp(char a,char b) {
    return a > b;
}

int main() {
    string a,b;
    cin>>a;
    a.insert(0, 4-a.length(), '0');//如果不足4位,就高位补零。 
    while(1) {
        b = a;
        sort(a.begin(),a.end(),cmp);//字符串中的字符递增排序
        sort(b.begin(),b.end());
        string result = to_string(stoi(a) - stoi(b));
        result.insert(0,4-result.length(),'0'); //如果不足4位,就高位补零。 
        printf("%s - %s = %s\n",a.c_str(),b.c_str(),result.c_str());
        if(result == "6174" || result == "0000")
            break;
        a = result;
    }
    return 0;
}

 

posted @ 2020-02-16 12:50  tangq123  阅读(101)  评论(0编辑  收藏  举报