因為有可能只輸出一次,所以用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 常數。例如,...