</pre><pre class="cpp" name="code">#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string>
#include<map>
using namespace std;
string jian(string a,string b)
{
string s;
int i=0,ans=0,n;
char m;
while(a[i]&&b[i])
{
a[i]=a[i]-(ans+'0')+'0';
if(a[i]<b[i])
{
n=(a[i]-'0')+10-(b[i]-'0');
s+=n+'0';
ans=1;
}
else
{
n=(a[i]-'0')-(b[i]-'0');
s+=n+'0';
ans=0;
}
i++;
}
for(i=i; i<a.size(); i++)
{
if(ans)
{
if(a[i]=='0')
{
s+='9';
ans=1;
}
else
{
s+=a[i]-'0'-ans+'0';
ans=0;
}
}
else
s+=a[i];
cout<<s[i]<<endl;
}
reverse(s.begin(),s.end());
//cout << "s = " << s << endl;
i = 0;
string ss;
for(i = 0; i < s.size() - 1; i++)
if(s[i] != '0') break;
for(int j = i; j < s.size(); j++)
ss += s[j];
return ss;
}
int main()
{
//freopen("a.txt","r",stdin);
string s1,s2,s3,s;
int flag;
while(cin>>s1>>s2)
{
if(s1.size()<s2.size()||s1.size()==s2.size()&&s1<s2)
{
s3=s1;
s1=s2;
s2=s3;
flag=0;
}
else
flag=1;
cout<<s1<<endl;
cout<<s2<<endl;
reverse(s1.begin(),s1.end());
reverse (s2.begin(),s2.end());
s=jian(s1,s2);
if(flag)
cout<<s<<endl;
else
cout<<'-'<<s<<endl;
}
return 0;
}
大数减法
最新推荐文章于 2023-11-28 15:30:51 发布