社区讨论
请问思路有什么不对吗?
P2142高精度减法参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miepoi3e
- 此快照首次捕获于
- 2025/11/25 23:09 3 个月前
- 此快照最后确认于
- 2025/11/26 09:22 3 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int main(){
string s1,s2;
bool flag=true;
long long a[1004],b[1004],c[1005];
cin >>s1>>s2;
long long len1=s1.size(),len2=s2.size();
for(long long i=0;i<len1;i++){
a[len1-i]=s1[i]-'0';
}
for(long long i=0;i<len2;i++){
b[len2-i]=s2[i]-'0';
}
if(len1<len2){
flag=false;
}else{
if(len1==len2){
for(long long i=1;i<=len1;i++){
if(a[i]<b[i]){
flag=false;
}
}
}
}
if(len1==len2==1){
cout<<a[1]-b[1];
return 0;
}
for(long long i=1;i<=min(len1,len2);i++){
c[i]=a[i]-b[i];
if(c[i]<0){
c[i]+=10;
c[i+1]+=-1;
}
}
if(!flag){
cout<<"-";
for(long long i=max(len1,len2);i>=1;i--){
cout<<c[i];
}
}else{
for(long long i=max(len1,len2);i>=1;i--){
cout<<c[i];
}
}
return 0;
}
按理来讲能行得通,但是为什么会WA呢?
回复
共 0 条回复,欢迎继续交流。
正在加载回复...