實驗4 1 12 黑洞數 20分

2021-10-01 19:17:26 字數 1086 閱讀 6869

黑洞數也稱為陷阱數,又稱「kaprekar問題」,是一類具有奇特轉換特性的數。

任何乙個各位數字不全相同的三位數,經有限次「重排求差」操作,總會得到495。最後所得的495即為三位黑洞數。所謂「重排求差」操作即組成該數的數字重排後的最大數減去重排後的最小數。(6174為四位黑洞數。)

例如,對三位數207:

第1次重排求差得:720 - 27 = 693;

第2次重排求差得:963 - 369 = 594;

第3次重排求差得:954 - 459 = 495;

以後會停留在495這一黑洞數。如果三位數的3個數字全相同,一次轉換後即為0。

任意輸入乙個三位數,程式設計給出重排求差的過程。

輸入格式:

輸入在一行中給出乙個三位數。

輸出格式:

按照以下格式輸出重排求差的過程:

序號: 數字重排後的最大數 - 重排後的最小數 = 差值

序號從1開始,直到495出現在等號右邊為止。

輸入樣例:

123輸出樣例:

1: 321 - 123 = 198

2: 981 - 189 = 792

3: 972 - 279 = 693

4: 963 - 369 = 594

5: 954 - 459 = 495

#include

int digit[10]

=,max,min;

//陣列初始化為0很關鍵

//引入全域性變數就不需要進行指標操作,從而實現雙向傳遞

void

getdigit

(int n)

}void

getmaxandmin

(int n)

//該函式直接將傳入進來的n重新排序得到排序後的最大值和最小值

//並將它們賦給全域性變數max和min

//這個處理技巧並不在意給出數字中是否有重複位數}}

intmain()

while

(num!=

495)

;//用do-while是因為pta中有乙個測試點是剛好給出495要進行一次排序輸出

}

黑洞數(20 分)

黑洞數也稱為陷阱數,又稱 kaprekar問題 是一類具有奇特轉換特性的數。任何乙個各位數字不全相同的三位數,經有限次 重排求差 操作,總會得到495。最後所得的495即為三位黑洞數。所謂 重排求差 操作即組成該數的數字重排後的最大數減去重排後的最小數。6174為四位黑洞數。例如,對三位數207 以...

7 6 黑洞數(20 分)

黑洞數也稱為陷阱數,又稱 kaprekar問題 是一類具有奇特轉換特性的數。任何乙個各位數字不全相同的三位數,經有限次 重排求差 操作,總會得到495。最後所得的495即為 三位黑洞數。所謂 重排求差 操作即組成該數的數字重排後的最大數減去重排後的最小數。6174為四位黑洞數。例如,對三位數207 ...

7 44 黑洞數 (20 分)

7 44 黑洞數 20 分 黑洞數也稱為陷阱數,又稱 kaprekar問題 是一類具有奇特轉換特性的數。任何乙個各位數字不全相同的三位數,經有限次 重排求差 操作,總會得到495。最後所得的495即為三位黑洞數。所謂 重排求差 操作即組成該數的數字重排後的最大數減去重排後的最小數。6174為四位黑洞...