1019 數字黑洞 20分

2021-10-23 03:39:18 字數 1058 閱讀 8781

因為有可能只輸出一次,所以用do while迴圈,用整數輸入,轉換為字元陣列進行排序,再轉換為整數進行相減,atoi()函式是將字元陣列轉換為整數,qsort()函式進行公升序和降序的排序,測試點2,3,4是輸入的不足四位,這樣要用0補,注意,結尾要加上』\0』這個結束符,系統並沒有自動補!!!這一點一定要注意!!!

**如下:

#include

#include

intjiang

(const

void

* a,

const

void

* b)

intsheng

(const

void

*a,const

void

*b)int

main()

s[i]

='\0'

;//一定要注意這裡,如果沒有這裡將所有測試點都會執行時錯誤!!哭了哭了

strcpy

(s1, s)

;qsort

(s,4

,sizeof

(char

), jiang)

;qsort

(s1,4,

sizeof

(char

), sheng)

; a =

atoi

(s), b =

atoi

(s1)

; n = a - b;

printf

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

, a, b, n);}

while

(n !=

6174

&& n !=0)

;return0;

}

1019 數字黑洞 (20 分)

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

1019 數字黑洞 (20 分)

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

1019 數字黑洞 (20 分)

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