leetcode 66 Plus One

来源:互联网 发布:郑州师范学院网络教育 编辑:程序博客网 时间:2024/06/04 18:24

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<iostream>#include<cstdio>#include<vector>using namespace std;vector<int> plusOne(vector<int> &digits){        int len=digits.size();        vector<int> res(digits);        int carrybit=1,i;        for(i=len-1;i>=0;i--)        {                if(carrybit==0)//当没有进位时break                        break;                else                {                        res[i]+=carrybit;                        if(res[i]>=10)                        {                                carrybit=1;                                res[i]-=10;                        }else                                carrybit=0;                }        }        if(i<0&&carrybit==1)//最高位有进位                res.insert(res.begin(),carrybit);        return res;}int main(int argc,char *argv[]){        freopen("input.txt","r",stdin);        int num;        vector<int> v,res;        cin>>num;        while(num--)        {                int tmp;                cin>>tmp;                v.push_back(tmp);//注意这里每个数占一位,v[i]应该是个个位数        }        res=plusOne(v);//对数组v表示的数加1        for(int i=0;i<res.size();i++)                cout<<res[i]<<" ";        cout<<endl;        return 0;}


0 0
原创粉丝点击