社区讨论
求助
P2142高精度减法参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lo2w0pjq
- 此快照首次捕获于
- 2023/10/23 20:42 2 年前
- 此快照最后确认于
- 2023/10/23 20:42 2 年前
诸位大佬,求助,80WA
CPP#include<bits/stdc++.h>
using namespace std;
int a[50000001],b[50000001];
string x,y,z;
int main ( )
{
cin>>x>>y;
a[0]=x.size();
b[0]=y.size();
for (int i=0;2*i<x.size();i++)
{
swap(x[i],x[x.size()-1-i]);
}
for (int i=0;i<x.size();i++)
{
a[i+1]=x[i]-'0';
}
for (int i=0;2*i<y.size();i++)
{
swap(y[i],y[y.size()-1-i]);
}
for (int i=0;i<y.size();i++)
{
b[i+1]=y[i]-'0';
}
a[0]=max(a[0],b[0]);
for (int i=1;i<=a[0];i++)
{
a[i]-=b[i];
if (a[i]<0)
{
a[i+1]--;
a[i]+=10;
}
}
if (a[a[0]+1]!=0)
{
for (int i=0;i<=6000;i++)
{
a[i]=0;
b[i]=0;
}
z=y;
y=x;
x=z;
cout<<"-";
a[0]=x.size();
b[0]=y.size();
for (int i=0;i<x.size();i++)
{
a[i+1]=x[i]-'0';
}
for (int i=0;i<y.size();i++)
{
b[i+1]=y[i]-'0';
}
a[0]=max(a[0],b[0]);
for (int i=1;i<=a[0];i++)
{
a[i]-=b[i];
if (a[i]<0)
{
a[i+1]--;
a[i]+=10;
}
}
}
while (a[a[0]]==0&&a[0]>1)a[0]--;
for (int i=a[0];i>=1;i--)cout<<a[i];
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...