给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。
该数字按照大小进行排列,最大的数在列表的最前面。
样例
给定 [1,2,3]
表示 123, 返回 [1,2,4]
.
给定 [9,9,9]
表示 999, 返回 [1,0,0,0]
.
解:简易版大整型加法
class Solution { public: /* * @param digits: a number represented as an array of digits * @return: the result */ vector<int> plusOne(vector<int> &digits) { // write your code here int x=0; int sz=digits.size(); digits[sz-1]+=1; x=digits[sz-1]/10; digits[sz-1]%=10; if(x>0)//有进位 { for(int i=sz-2;i>=0;i--) { digits[i]=digits[i]+x; x=digits[i]/10; digits[i]%=10; if(x==0) break; } } if(x>0)//最后还有额外的进位 { digits.insert(digits.begin(),1); } return digits; } };