給定任乙個各位數字不完全相同的 4 位正整數,如果我們先把 4 個數字按非遞增排序,再按非遞減排序,然後用第 1 個數字減第 2 個數字,將得到乙個新的數字。一直重複這樣做,我們很快會停在有「數字黑洞」之稱的6174
,這個神奇的數字也叫 kaprekar 常數。
例如,我們從6767
開始,將得到
7766 - 6677 = 1089
9810 - 0189 = 9621
9621 - 1269 = 8352
8532 - 2358 = 6174
7641 - 1467 = 6174
... ...
現給定任意 4 位正整數,請編寫程式演示到達黑洞的過程。
輸入給出乙個 (0,104) 區間內的正整數 n。
6767
7766 - 6677 = 1089
9810 - 0189 = 9621
9621 - 1269 = 8352
8532 - 2358 = 6174
2222
2222 - 2222 = 0000
#includeusing namespace std;
bool comp(int a,int b)
int main()
sort(num_a,num_a+4,comp);
sort(num_b,num_b+4);
int a = num_a[0]*1000+num_a[1]*100+num_a[2]*10+num_a[3];
int b = num_b[0]*1000+num_b[1]*100+num_b[2]*10+num_b[3];
res = a-b;
printf("%04d - %04d = %04d\n",a,b,res);
n = res;
}}
PAT乙級真題 1019 數字黑洞 C 實現
給定任乙個各位數字不完全相同的 4 位正整數,如果我們先把 4 個數字按非遞增排序,再按非遞減排序,然後用第 1 個數字減第 2 個數字,將得到乙個新的數字。一直重複這樣做,我們很快會停在有 數字黑洞 之稱的 6174,這個神奇的數字也叫 kaprekar 常數。例如,我們從6767開始,將得到 7...
PAT 乙級 1019 數字黑洞
例如,我們從6767開始,將得到 7766 6677 1089 9810 0189 9621 9621 1269 8352 8532 2358 6174 7641 1467 6174 現給定任意4位正整數,請編寫程式演示到達黑洞的過程。輸入格式 輸入給出乙個 0,10000 區間內的正整數n。輸出格...
PAT乙級 1019 數字黑洞
給定任乙個各位數字不完全相同的4位正整數,如果我們先把4個數字按非遞增排序,再按非遞減排序,然後用第1個數字減第2個數字,將得到乙個新的數字。一直重複這樣做,我們很快會停在有 數字黑洞 之稱的6174,這個神奇的數字也叫kaprekar常數。例如,我們從6767開始,將得到 7766 6677 10...