大数减法

来源:互联网 发布:怎么解除淘宝限制购买 编辑:程序博客网 时间:2024/04/29 04:48

大数减法/C++代码

#include<cstdio>#include<cstring>#include<string>#include<iostream>using namespace std;string sub(string a,string b){    int i,j,k,s,flag=1;    int tmpa[10000],tmpb[10000],c[10000];    string ans;    if(a.size()<b.size()||(a.size()==b.size()&&a.compare(b)<0))    {        string tmp=a;        a=b;        b=tmp;        flag=0;    }    while(a.size()>b.size())        b='0'+b;    int len=a.size();    for(i=0;i<len;i++)    {        tmpa[i]=a[i]-'0';        tmpb[i]=b[i]-'0';    }    for(i=len-1;i>=0;i--)    {        if(tmpa[i]>=tmpb[i])            c[i]=tmpa[i]-tmpb[i];        else        {            c[i]=10+tmpa[i]-tmpb[i];            tmpa[i-1]--;        }    }    for(i=0;i<len-1;i++)        if(c[i]!=0)          break;    for(j=i;j<len;j++)        ans=ans+(char)(c[j]+'0');    if(!flag)        ans='-'+ans;    return ans;}int main(){    string a,b;    while(cin>>a>>b)    {        cout<<sub(a,b)<<endl;    }    return 0;}
//李远航学长的模板代码;

0 0
原创粉丝点击