数字列表加法操作相关题目描述及相关代码
This commit is contained in:
43
某大厂算法题库/数字列表加法操作/数字列表加法操作.py
Normal file
43
某大厂算法题库/数字列表加法操作/数字列表加法操作.py
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
num1 = [1, 8, 9]
|
||||||
|
num2 = [2, 1]
|
||||||
|
res = []
|
||||||
|
|
||||||
|
carry = 0
|
||||||
|
i = -1
|
||||||
|
lens1 = len(num1)
|
||||||
|
lens2 = len(num2)
|
||||||
|
|
||||||
|
min_index = min(lens1, lens2) * -1
|
||||||
|
|
||||||
|
while i >= min_index:
|
||||||
|
val = num1[i] + num2[i] + carry
|
||||||
|
if val >= 10:
|
||||||
|
carry = 1
|
||||||
|
res.insert(0, val - 10)
|
||||||
|
else:
|
||||||
|
carry = 0
|
||||||
|
res.insert(0, val)
|
||||||
|
i -= 1
|
||||||
|
|
||||||
|
if lens1 != lens2:
|
||||||
|
if lens1 > lens2:
|
||||||
|
last = num1
|
||||||
|
min_index = lens1 * -1
|
||||||
|
else:
|
||||||
|
last = num2
|
||||||
|
min_index = lens2 * -1
|
||||||
|
|
||||||
|
while i >= min_index:
|
||||||
|
val = last[i] + carry
|
||||||
|
if val >= 10:
|
||||||
|
carry = 1
|
||||||
|
res.insert(0, val-10)
|
||||||
|
else:
|
||||||
|
carry = 0
|
||||||
|
res.insert(0, val)
|
||||||
|
i -= 1
|
||||||
|
|
||||||
|
if carry:
|
||||||
|
res.insert(0, carry)
|
||||||
|
|
||||||
|
print(res)
|
||||||
31
某大厂算法题库/数字列表加法操作/说明.md
Normal file
31
某大厂算法题库/数字列表加法操作/说明.md
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# 数字列表加法操作
|
||||||
|
|
||||||
|
## 需求
|
||||||
|
|
||||||
|
给定一个数字列表,每个数字范围:0-9;
|
||||||
|
|
||||||
|
数字列表:
|
||||||
|
|
||||||
|
数字189使用列表表示:num1 = [1, 8, 9]
|
||||||
|
|
||||||
|
数字21使用列表表示:num2 = [2, 1]
|
||||||
|
|
||||||
|
num1与num2相加结果: [2, 1, 0]
|
||||||
|
|
||||||
|
## 题目分析
|
||||||
|
|
||||||
|
在C,C++等语言中,受限于计算机位数,整数最大值有限制;为了防止越界,导致计算结果错误,会使用巨型数组替代数字进行计算;
|
||||||
|
|
||||||
|
计算规则:
|
||||||
|
|
||||||
|
1. 计算最低位,并检查是否有进位;
|
||||||
|
|
||||||
|
2. 计算次低位,检查是否有进位;
|
||||||
|
|
||||||
|
3. 如果两个数字列表长度不同,将为完成计算的插入到前面,并检查进位;
|
||||||
|
|
||||||
|
逻辑图如下:
|
||||||
|
|
||||||
|
<img src="file:///Users/wangyu/Library/Application%20Support/marktext/images/2026-01-08-17-08-29-image.png" title="" alt="" width="518">
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user