LeetCode算法题解(4)加1

Given a non-negative number represented as an array of digits, plus one to
the number.
The digits are stored such that the most significant digit is at the head of the
list.

#include<vector>
#include<string>
using namespace std;

vector<int> plusOne(vector<int>& digits);
int main()
{
    vector<int> digits;
    vector<int> digitsPlusOne;
    int dig[]={1,9,9,9,9,9};
    int Num=sizeof(dig)/sizeof(int);
    for(int i=0;i<Num;i++)
    {
        digits.push_back(dig[i]);
    }
    //digitsPlusOne即为加1后的结果
    digitsPlusOne=plusOne(digits);
    return 0;
}

vector<int> plusOne(vector<int>& digits)
{
    vector<int> res(digits.size(),0);
    int sum=0;
    int one=1;
    for(int i=digits.size()-1;i>=0;i--)
    {
        sum = one+digits[i];
        one=sum/10;//取整数部分
        res[i]=sum%10;//取余数部分
    }
    if(one>0)
    {
        res.insert(res.begin(),one);
    }
    return res;
}

猜你喜欢

转载自blog.csdn.net/u014571489/article/details/81193142