2017-05-07 4 views
-4

例えば、私は2つの数字:4532と5489を持っています.4532の最初の数字と4のすべての数字、つまり4-5,4-4,4-8,4-9の数字の最小の差を計算したいどうすればいい?2桁の数字の差を比較するにはどうすればよいですか?

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 - 4'のための' 0'? –

+0

SOはコード作成サービスではありません。これまでに何を試しましたか? –

+0

numの最初の桁とnum2の桁の差だけを計算したいのであれば、numを反復処理するのはなぜですか?問題はまだ不明です。 – timgeb

答えて

0

いいコードではありませんが、機能しています。これをあなたが望むものに調整することができます。
同じ結果を持つ2桁の数字がある場合、そのことはわかりません(この場合、最初に一致した人が残っています)

この例では、それはあなたに最も少ない差を与えます。代わりに結果を保存するように変更することができます。

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) 
関連する問題