PAT乙級1019C語言

2021-10-02 10:31:26 字數 925 閱讀 8924

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

例如,我們從6767開始,將得到

7766 - 6677 = 1089

9810 - 0189 = 9621

9621 - 1269 = 8352

8532 - 2358 = 6174

7641 - 1467 = 6174

… …現給定任意 4 位正整數,請編寫程式演示到達黑洞的過程。

主要在於判斷減完後的值以及輸出,用do while 能夠很好的解決。

#include

intcmp

(const

void

*a,const

void

*b)int

main()

;scanf

("%d"

,&n);do

for(

int i=

0;i<

4;i++

)//提取每一位數,為後面的運算做準備

qsort

(a,4

,sizeof

(int

),cmp)

;//快速排序

h=l=0;

for(

int i=

0;i<

4;i++

) n=h-l;

printf

("%04d - %04d = %04d\n"

,h,l,n);}

while

(n!=

6174);

return0;

}

PAT乙級1019(C語言)

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

PAT乙級 1019 數字黑洞 C語言

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

PAT 乙級1019 數字黑洞(C語言)

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