大数相减C++实现

来源:互联网 发布:西语翻译软件 编辑:程序博客网 时间:2024/05/21 04:16
#include<iostream>#include<vector>using namespace std;int main(){    string s1,s2;    cin>>s1>>s2;    int len1=s1.size();    int len2=s2.size();    int bit=0;    int k=0;    vector<int>vi;    int t=0;    int i=0,j=0;    for( i=len1-1,j=len2-1;i>=0&&j>=0;i--,j--)    {        t=s1[i]-'0'-(s2[j]-'0')-bit;        if(t<0)        {            bit=1;            vi.push_back(t+10);        }        else        {            bit=0;            vi.push_back(t);        }    }    while(i>=0)    {        t=s1[i]-'0'-bit;        if(t<0)        {            bit=1;            vi.push_back(t+10);        }        else        {            bit=0;            vi.push_back(t);        }        i--;    }    while(j>=0)    {        t=10-bit-(s2[j]-'0');        vi.push_back(t);        j--;    }    if(bit==1)    {        vi[0]=10-vi[0];        for(int k=1;k<vi.size();k++)        {            vi[k]=10-vi[k]-bit;        }    }    if(bit==1)    cout<<"-";    for(int c=vi.size()-1;c>=0;c--)    {        cout<<vi[c];    }    cout<<endl;    }

0 0
原创粉丝点击