LCR 192. 把字符串转换成整数 (atoi) - 力扣(LeetCode)
进位思想,字符和数字之间来回切换
好的,以下是针对 num1 = "123"
和 num2 = "456"
的完整计算过程,列举了每一步的详细操作。
初始设置
num1 = "123"
num2 = "456"
res
初始化为"000000"
(长度为 6,即n1 + n2
)
计算步骤
-
num2[2] * num1[2]
(6 * 3)temp = (res[5] - '0') + 6 * 3 = 0 + 18 = 18
res[5] = 18 % 10 + '0' = '8'
res[4] += 18 / 10 = 1
(res[4]
变成'1'
)
当前
res
="000018"
-
num2[2] * num1[1]
(6 * 2)temp = (res[4] - '0') + 6 * 2 = 1 + 12 = 13
res[4] = 13 % 10 + '0' = '3'
res[3] += 13 / 10 = 1
(res[3]
变成'1'
)
当前
res
="000138"
-
num2[2] * num1[0]
(6 * 1)temp = (res[3] - '0') + 6 * 1 = 1 + 6 = 7
res[3] = 7 % 10 + '0' = '7'
当前
res
="000738"
-
num2[1] * num1[2]
(5 * 3)temp = (res[4] - '0') + 5 * 3 = 3 + 15 = 18
res[4] = 18 % 10 + '0' = '8'
res[3] += 18 / 10 = 1
(res[3]
变成'8'
)
当前
res
="000838"
-
num2[1] * num1[1]
(5 * 2)temp = (res[3] - '0') + 5 * 2 = 8 + 10 = 18
res[3] = 18 % 10 + '0' = '8'
res[2] += 18 / 10 = 1
(res[2]
变成'1'
)
当前
res
="001838"
-
num2[1] * num1[0]
(5 * 1)temp = (res[2] - '0') + 5 * 1 = 1 + 5 = 6
res[2] = 6 % 10 + '0' = '6'
当前
res
="006838"
-
num2[0] * num1[2]
(4 * 3)temp = (res[3] - '0') + 4 * 3 = 8 + 12 = 20
res[3] = 20 % 10 + '0' = '0'
res[2] += 20 / 10 = 2
(res[2]
变成'8'
)
当前
res
="008038"
-
num2[0] * num1[1]
(4 * 2)temp = (res[2] - '0') + 4 * 2 = 8 + 8 = 16
res[2] = 16 % 10 + '0' = '6'
res[1] += 16 / 10 = 1
(res[1]
变成'1'
)
当前
res
="010638"
-
num2[0] * num1[0]
(4 * 1)temp = (res[1] - '0') + 4 * 1 = 1 + 4 = 5
res[1] = 5 % 10 + '0' = '5'
当前
res
="015638"