加一 Plus One
这个题目比较简单, 就是用数组来模拟任意精度的整数相加, 数组中的每个元素代表了十进制整数值中的每个位.
这个问题唯一要操作的是进位置 carry, 从右向左依次将数组中的每个元素与 carry 相加, 然后把结果写回到该元素, 如果产生了新的进位, 就把它写回到 carry.
#![allow(unused)] fn main() { pub fn plus_one1(digits: Vec<i32>) -> Vec<i32> { let mut digits = digits; let mut carry = 1; // 从右向左依次遍历数组中的每个进位的值. for digit in digits.iter_mut().rev() { let sum = *digit + carry; carry = sum / 10; *digit = sum % 10; } if carry == 1 { digits.insert(0, carry); } digits } }