1069. The Black Hole of Numbers (20)(模擬題)

PAT-A1069,題目地址:https://www.patest.cn/contests/pat-a-practise/1069
這道題比較簡單,只要把整個過程都模擬出來就可以了。值得注意的點:

  1. 最后的輸出要求必須是4位數(shù)格式,不足的前面補0.
  2. 對于輸入本身<1000的要想想代碼考慮到了沒有
  3. 輸入6174算是一個特例,有一個case的輸入就是6174

代碼如下:

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string.h>

using namespace std;

int get_seq(int num, int order){ //order=1返回最小值,=0返回最大值
    int a[4], count = 0, res = 0;
    memset(a, 0, sizeof(int) * 4); //數(shù)組默認初始化為0, 這樣如果輸入<1000,就相當于自動補0了
    while(num != 0){
        a[count] = num % 10;
        num /= 10;
        count++;
    }
    sort(a, a+4);
    if(order){
        for(int i = 0; i <= 3; i++){
            res = res * 10 + a[i];
        }
    }
    else{
        for(int i = 3; i >= 0; i--){
            res = res * 10 + a[i];
        }
    }
    return res;
}

int main(){
    int num;
    cin >> num;
    bool flag = false;
    //此處其實用do...while循環(huán)是最好的,連flag變量都省了
    while((num != 6174 || !flag)&& num != 0){
        int max = get_seq(num, 0);
        int min = get_seq(num, 1);
        num = max - min;
        printf("%04d - %04d = %04d\n", max, min, num); //注意格式化輸出的格式
        flag = true;
    }
    return 0;
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容