大数减法
发布时间:2020-12-14 01:30:19 所属栏目:大数据 来源:网络整理
导读:大数减法/C++代码 #includecstdio#includecstring#includestring#includeiostreamusing 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()
大数减法/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; }//李远航学长的模板代码; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |