2016-08-19 29 views
-5
What would be the logic of swapping any two digits of any number based on its position? 

例如在57896中,根據任意兩位數字的位置它必須交換。 像第一個位置與第三個或第二個與第五個,然後打印交換號..根據其位置交換數字的任意兩位數字

+0

你應該分享你以前的嘗試或做過的事情,這裏的人不會做你的功課! –

+0

其實我很困惑如何交換數字的位數。我可以交換兩個字母的字符串,但不能認爲上述關注的邏輯.. –

+0

我會建議使用一些數學 – dvhh

回答

1

你可以做到這一點數值,這將比「進出一個字符串」快得多。我將通過交換數字12345中的2和5來工作,並希望您可以概括這種方法。表示原始號碼與交換數字的數字之間的差值爲d

  1. 計算要交換的兩位數之間的差值。在你的情況下,這是5 - 2 = 3。仔細注意符號公約。由於2在1000的位置,並且在單位位置的5,所以差異d將是3 * 1000-3 * 1 = 2997。注意,第二項的符號將與第一學期。

  2. 將其添加到原始數字以獲得您的結果。

作爲另一個例子,考慮從12345交換2和3.差別是1,2在1000的位置和3在100的位置。因此,差值爲1 * 1000 - 1 * 100 = 900。然後將其添加到原始數字中。