用Python模擬整數乘法的小學豎式計算方法
阿新 • • 發佈:2021-01-11
用Python模擬整數乘法的小學豎式計算方法
模擬整數乘法的小學豎式計算方法
示例:
關於這個計算的思路:
是將較小的數從個位開始
,把每一位數
乘以較大的乘數,得到的結果自取一行,逐行向前進一個位子
,再最後豎著相加得到結果,用計算機可以直接得出結果,所以問題就是怎麼把過程按照正確的格式輸出
出來,相關程式碼可以參考下面
a=int(input())
b=int(input())
c="*)"
d="----------------"
def do(a,b):
kuan=len(str(a*b)) # 獲取計算結果的長度
i=0
print(str(max(a,b)).rjust(kuan)) # 第一行寫的是最大的乘數,總長度是計算結果的長度
print(c,str(min(a,b)).rjust(kuan-3)) # 第二行寫的是"*)"這個符號加上更小的乘數,靠右輸出,總長度是計算結果的長度
print(d) # 列印分割線
m=min(a,b)
mm=list(map(int,reversed(str(m)))) # 計演算法則中較小的每個位的數都要乘大的數,所以把小的乘數倒序放到列表裡
for x in mm:
f1=x*max(a,b) # 計算列表的每一個數*大的乘數
print((str(f1)+" "*i).rjust(kuan)) # 每次計算都要輸出
i+=1 # 每輸出一次後面的空格都要加一次
print(d) # 再輸出一次分割線
print(a*b) # 輸出結果
do(a,b)