PAT 1019 數字黑洞

2021-10-08 00:19:46 字數 1328 閱讀 3346

輸入格式:

輸入給出乙個 (0,10^​4​​ ) 區間內的正整數 n。

輸出格式:

如果 n 的 4 位數字全相等,則在一行內輸出 n - n = 0000;否則將計算的每一步在一行內輸出,直到 6174 作為差出現,輸出格式見樣例。注意每個數字按 4 位數格式輸出。

輸入樣例 1:

6767

輸出樣例 1:

7766 - 6677 = 1089

9810 - 0189 = 9621

9621 - 1269 = 8352

8532 - 2358 = 6174

輸入樣例 2:

2222

輸出樣例 2:

2222 - 2222 = 0000

分析

由於確定是4位整數,資料量不大,所以我們完全可以先對數字進行重新排序,之後由於還要每位相減,所以需要求出每位的值儲存到陣列中。

#include

#include

using

namespace std;

int n[4]

;void

getn

(int n)

intgetn()

bool bigtomin (

int i,

int j)

//降序排列

intmain()

else

sort

(n,n+4)

;//從小到大得出最小

int min=

getn()

;sort

(n,n+

4,bigtomin)

;//從大到小的出最大

int max=

getn()

; n=max-min;

cout<

" - "

;int k=min;

while

((k/

1000)==

0)cout<

" = "

; k=n;

while

((k/

1000)==

0)cout<

cout<

}while

(n!=

6174);

}return0;

}

PAT 1019 數字黑洞

給定任乙個各位數字不完全相同的4位正整數,如果我們先把4個數字按非遞增排序,再按非遞減排序,然後用第1個數字減第2個數字,將得到乙個新的數字。一直重複這樣做,我們很快會停在有 數字黑洞 之稱的6174,這個神奇的數字也叫kaprekar常數。例如,我們從6767開始,將得到 7766 6677 10...

PAT 1019數字黑洞

時間限制 100 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 給定任乙個各位數字不完全相同的4位正整數,如果我們先把4個數字按非遞增排序,再按非遞減排序,然後用第1個數字減第2個數字,將得到乙個新的數字。一直重複這樣做,我們很快會停...

PAT 1019數字黑洞

給定任乙個各位數字不完全相同的4位正整數,如果我們先把4個數字按非遞增排序,再按非遞減排序,然後用第1個數字減第2個數字,將得到乙個新的數字。一直重複這樣做,我們很快會停在有 數字黑洞 之稱的6174,這個神奇的數字也叫kaprekar常數。例如,我們從6767開始,將得到 7766 6677 10...