對於任何各位數字不完全相同的四位整數,我們將該數字的四個數字按非公升序排列,得到乙個數字,再按非降序排列,得到另乙個數字,將兩個數字相減就能得到乙個新的數字。
不斷重複這個過程,我們就能得到數字6174 ---- 這是四位數字的黑洞。
例如,給定數字 6767,過程如下:
7766 - 6677 = 1089
9810 - 0189 = 9621
9621 - 1269 = 8352
8532 - 2358 = 6174
7641 - 1467 = 6174
… …給定任意乙個四位數字,請你輸出它進入黑洞的過程。
輸入格式
包含乙個正整數 nn。
注意,給定數字 nn 如果不足四位,則補充前導 00 至四位為止。
輸出格式
如果 nn 的四位數字都相同,則輸出一行 n - n = 0000。
否則,每行輸出乙個操作步驟,直到出現 61746174 作為差值產生為止。
所有數字都必須輸出為四位數字。
資料範圍
0#include
#include
#include
#include
using
namespace std;
vector<
int>
get(
int n)
sort
(nums, nums +4)
;int a =0;
for(
int i =
0; i <
4; i ++
) a = a *
10+ nums[i]
;reverse
(nums, nums +4)
;int b =0;
for(
int i =
0; i <
4; i ++
) b = b *
10+ nums[i]
;return;}
intmain()
while
(n && n !=
6174);
return0;
}
PAT 乙級真題 1009 1019 數字黑洞
題目描述 給定任乙個各位數字不完全相同的4位正整數,如果我們先把4個數字按非遞增排序,再按非遞減排序,然後用第1個數字減第2個數字,將得到 乙個新的數字。一直重複這樣做,我們很快會停在有 數字黑洞 之稱的6174,這個神奇的數字也叫kaprekar常數。例如,我們從6767開始,將得到 7766 6...
PAT乙級真題 C 數字黑洞
給定任乙個各位數字不完全相同的4位正整數,如果我們先把4個數字按非遞增排序,再按非遞減排序,然後用第1個數字減第2個數字,將得到乙個新的數字。一直重複這樣做,我們很快會停在有 數字黑洞 之稱的6174,這個神奇的數字也叫kaprekar常數。例如,我們從6767開始,將得到 7766 6677 10...
浙大PAT甲級 1069
簡單的字串處理,先將輸入的數前面補0,直到為4位數。然後進行字串相減,直到為6174為止。如果字串每個字元都相等,則輸出0000。ac include include include include include include include include include include in...