描述
以字符串的形式讀入兩個數字,編寫一個函數計算它們的和,以字符串形式返回。
代碼實現
- 大小判斷:a - b 與 b - a 的絕對值相等
- 將大的數放前面,抽離出結果的符號
import random
s, t = str(random.randint(1000, 9999)), str(random.randint(1000, 9999))
# 大數減法
def subtraction(s, t):op = ''if s < t:op = '-'s, t = t, sif len(s) > len(t): # 補齊位數,減少循環中的邏輯判斷t = '0' * (len(s) - len(t)) + tarr1, arr2, arr = list(map(int, list(s))), list(map(int, list(t))), []for i in range(len(arr1)-1, -1, -1):if arr1[i] >= arr2[i]: arr.append(arr1[i] - arr2[i])else:j = i - 1while arr1[j] == 0:arr1[j] = 9j -= 1arr1[j] -= 1arr.append(10 + arr1[i] - arr2[i]) arr = map(str, arr[::-1])return op + ''.join(arr) print(s , t, int(s) - int(t), subtraction(s, t)
)