- 高精度减法
WA
- 2025-7-8 16:59:42 @
#include<bits/stdc++.h>
using namespace std;
const int N=51;
char a1[N],b1[N];
int a[N],b[N],c[N],flag=0;
int main(){
cin>>a1>>b1;
if(strlen(a1)<strlen(b1)||strlen(a1)==strlen(b1)&&strcmp(a1,b1)<0){
swap(a1,b1);
flag=1;
}
int lena=strlen(a1),lenb=strlen(b1);
for(int i=0;i<lena;i++){
a[i]=a1[lena-1-i]-'0';
}
for(int i=0;i<lenb;i++){
b[i]=b1[lenb-1-i]-'0';
}
int lenc=max(lena,lenb);
for(int i=0;i<lenc;i++){
c[i]=a[i]-b[i];
if(c[i]<0){
a[i+1]--;
c[i]+=10;
}
}
while(c[lenc-1]==0&&lenc>1){
lenc--;
}
if(flag==1){
cout<<"-";
}
for(int i=lenc-1;i>=0;i--){
cout<<c[i];
}
return 0;
}
0 条评论
目前还没有评论...
信息
- ID
- 628
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 106
- 已通过
- 25
- 上传者