进阶PAT 2021-11-17 18:42 采纳率: 78.4%
浏览 48
已结题

使用C++完成一个希腊数小程序

题目描述:
定义希腊数:一个数,经过最多10000次交换相邻两数(这也意味着可以选择不交换),所得到的最大数为希腊数。
请您写一个小程序,输出希腊数。
输入:
输入仅一行,包含一个数n。
输出:
输出仅一行,为n的希腊数。
样例输入:
87900
样例输出:
98700
提示:
1<=n<=1e9

  • 写回答

1条回答 默认 最新

  • 广大菜鸟 2021-11-17 19:04
    关注
    
    #include<iostream>
    #include<string.h>
    using namespace std;
    int main() {
        char str[20]="\0";
        cin >> str;
        //大->小
        int i = 0, j = 0, len = strlen(str);
        int mark; char c;
        for (i = 0; i < len - 1; i++) {
            mark = 0;
            for (j = len - 1; j > i; j--) {
                if (str[j] > str[j - 1]) {
                    mark = 1;
                    c = str[j];
                    str[j] = str[j - 1];
                    str[j - 1] = c;
                }
            }
            if (mark == 0)
                break;
        }
        cout << str << endl;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月17日
  • 已采纳回答 11月17日
  • 请采纳用户回复 11月17日
  • 创建了问题 11月17日