• PAT1019数字黑洞


    #include <iostream>
    #include <string>
    #include <algorithm>
    #include <sstream>

    using namespace std;

    string int2string(int ival)
    {
    stringstream stream; //创建一个stringstream, 即可以用来输入,也可用来输出数据
    stream << ival; //将int型值传给stringstream,
    return stream.str(); //stringstream的成员函数str() 返回一个相应的字符串
    }
    int STOI(string s)
    {
    stringstream stream;
    stream << s;
    int t;
    stream >> t;
    return t;
    }
    int main()
    {
    string num_str;
    cin >> num_str;
    for (int i = num_str.size(); i < 4; i++)
    num_str += '0';


    while (true)
    {
    // 先检查数字字符是否全部一样
    if (num_str.find_first_not_of(num_str[0]) == string::npos)
    {
    cout << num_str << " - " << num_str << " = " << "0000" << endl;
    break; // 结束循环
    }
    // 数字字符升序排序
    sort(num_str.begin(), num_str.end());
    int num_ascend = STOI(num_str);
    // 数字字符降序排序
    reverse(num_str.begin(), num_str.end());
    int num_descent = STOI(num_str);
    if (num_ascend != num_descent) // 四位数字不全相同情况
    {
    if (num_descent - num_ascend == 6174)
    {
    cout << num_descent << " - " << num_ascend << " = "
    << 6174 << endl;
    break; // 结束循环
    }
    else //差不为6174
    {
    string num_ascend_str = int2string(num_ascend);
    if (num_ascend_str.size() != 4) // 控制输出的格式,必须有4位填充满
    num_ascend_str.insert(0, 4 - num_ascend_str.size(), '0');
    cout << num_descent << " - " << num_ascend_str << " = "
    << num_descent - num_ascend << ' ';
    num_str = int2string(num_descent - num_ascend);
    }
    }
    }
    getchar();
    getchar();
    return 0;
    }

  • 相关阅读:
    条件注释,判断浏览器版本
    IE 兼容模式下不支持DIV CSS样式display:inline-block,解决
    Hibernate配置问题
    初学Hibernate
    Ognl基本使用
    初学Struts2-自定义拦截器及其配置
    初学structs2,表单验证简单补充
    初学structs2,表单验证
    structs2标签简单实用,及自定义转换器示例代码
    一些专业术语的总结
  • 原文地址:https://www.cnblogs.com/zxzmnh/p/11627056.html
Copyright © 2020-2023  润新知