本题源自LeetCode
---------------------------------------------------------
思路:
数组的最后存放的是数的最低位,加上一个1 后,判断是否有进位。
代码1:
vector<int> plusOne(vector<int> &digits) {
int len=digits.size();
int carry=1;
for(int i=len-1;i>=0;i--){
digits[i]+=carry;
carry=digits[i]/10; //判断是否有进位
digits[i] %=10;
}
if(carry>0)
digits.insert(digits.begin(),1);
return digits;
}
代码2:
vector<int> plusOne(vector<int> &digits) {
int i=digits.size()-1;
while(i>=0&&digits[i]==9){ //只要低位是9 就变为0
digits[i]=0;
i--;
}
if(i>=0)
digits[i]++; //遇到不是9 的就加1 结束
else{ //否则 为全是9 的数。则进位1.
digits.push_back(0);
digits[0]=1;
}
return digits;