2017-05-07 234 views
-4

對於例如我有兩個數字:4532和5489.我想計算4532的第一個數字是4和5489的所有數字之間的最小差異,即4-5,4-4,4-8和4-9 。我該怎麼做?如何比較兩個數字的數字之間的差異?

num = "4532" 
num2 = "5489" 
for j in num2: 
    if int(i)-int(j)<int(i)-int(j+1): 
     print(int(i)-int(j)) #I am getting list index out of bound exception 
+1

那麼預期產出是多少? '4 - '的'0'? –

+0

SO不是代碼寫入服務。你試過什麼了? –

+0

當你只想計算num的第一個數字和num2的數字之間的差別時,爲什麼你要重複num?這個問題還不清楚。 – timgeb

回答

0

這不是一個很好的代碼,但它的工作。你可以調整它到你想要的。
請記住,如果你有兩個數字同樣的結果,你會不知道,(你會留下誰第一個匹配的,在這種情況下)

在那個例子中,你會得到的數字那會給你最小的差別。您可以改變它來保存結果。

num1 = 4532 
num2 = 5489 
ln2 = len(str(num2)) 
firstDigit = int(str(num1)[0]) 
lowest = None 
temp = num2 

for i in range(ln2): 
    last = temp % 10 
    temp //= 10 
    diff = abs(firstDigit - last) 

    if lowest is None or diff < abs(lowest - firstDigit): 
     lowest = last 

print(lowest)