范沐垚


私信TA

用户名:dotcpp0614554

访问量:5204

签 名:

好大喜功

等  级
排  名 196
经  验 6613
参赛次数 0
文章发表 87
年  龄 18
在职情况 学生
学  校 看今夜 小楼灯宴
专  业 尽是良辰美眷

  自我简介:

沽名钓誉

#include<iostream>
#include<vector>
using namespace std;
const int N=1e6+10;
string a,b;
vector<int>A,B;
vector<int>add(vector<int>&A,vector<int>&B)
{
    vector<int>C;
    int t=0;
    for(int i=0;i<A.size()||i<B.size();i++)    //注意i的范围,只要一个数没加完就继续加
    {
        if(i<A.size())          //t表示这一位的和
            t+=A[i];
        if(i<B.size())
            t+=B[i];
        C.push_back(t%10);        //存进去需要取模。类比竖式计算
        t/=10;
    }
    if(t)                         //如果最后t不等于1,就进一位
        C.push_back(1);
    return C;
}

int main(void)
{
    cin>>a>>b;
    for(int i=a.size()-1;i>=0;i--)   //从个位存
        A.push_back(a[i]-'0');    //字符变数字记得减去‘0’
    for(int i=b.size()-1;i>=0;i--)
        B.push_back(b[i]-'0');
    auto C=add(A,B);
    for(int i=C.size()-1;i>=0;i--)   //从最高位输出
        cout<<C[i];
    return 0;
}


 

0.0分

1 人评分

  评论区

  • «
  • »