• PTA 乙级 1019 数字黑洞 (20分)


     调库大法,将输入的数字转化为字符串(to_string),然后进行排序(sort进行从小到大的排序,reverse对进行sort之后的数字进行逆序)

    (C++中,可以进行 类=类 的操作,实现复制,而java不可以,java需要特殊的函数来进行类的复制)

    注意:

    • 每个数字必须输出四位,所以需要0补全
    • 有直接输入n = 6174的情况,所以要用do-while循环(至少执行一次)
     1 #include<iostream>
     2 #include<string>
     3 #include<algorithm>
     4 #include<iomanip>
     5 
     6 using namespace std;
     7 
     8 string getmaxmin(int n, bool flag) {
     9     string num;
    10     num = to_string(n);                //数字转化为字符串
    11     while (num.size() < 4) {
    12         num += '0';
    13     }
    14     sort(num.begin(), num.end());    //sort进行从小到大的排序(min)
    15     if (flag == 1) {
    16         reverse(num.begin(), num.end());//reverse对排序结果进行逆序(max)
    17     }
    18     return num;
    19 }
    20 
    21 int main() {
    22     int n = 0;
    23     string max, min;
    24     cin >> n;
    25     do{
    26         max = getmaxmin(n, 1);
    27         min = getmaxmin(n, 0);
    28         n = stoi(max) - stoi(min);    //字符串转化为数字
    29         cout << max << " - " << min << " = " << 
    30             setw(4) << setfill('0') << n << endl;    //需要输出位补齐
    31     } while (n != 6174 && n != 0);
    32     return 0;
    33 }

    一直在学java,C++没接触多少,调库什么的都是现学现找的,有不对的地方还请指正

  • 相关阅读:
    hdu 2586 How far away ?
    zoj 3195 Design the city
    hust 1022 K-diff subsequence
    poj 2253 Frogger
    poj 1470 Closest Common Ancestors
    poj 2553 The Bottom of a Graph
    poj 1236 Network of Schools
    poj 3694 Network
    uva 10131 Is Bigger Smarter ? (简单dp 最长上升子序列变形 路径输出)
    2014年百度之星程序设计大赛
  • 原文地址:https://www.cnblogs.com/SCP-514/p/13252902.html
Copyright © 2020-2023  润新知