社区讨论
90求条
P2142高精度减法参与者 3已保存回复 13
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 13 条
- 当前快照
- 1 份
- 快照标识符
- @m05dzvhd
- 此快照首次捕获于
- 2024/08/22 22:37 2 年前
- 此快照最后确认于
- 2025/11/05 00:36 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int main(){
char a[100010],b[100010];
cin>>a>>b;
int c[100010],d[100010],h[100010],n1,n2,i,f=0,l=0;
n1=strlen(a);
n2=strlen(b);
for(i=0;i<n1/2;i++) swap(a[i],a[n1-1-i]);
for(i=0;i<n2/2;i++) swap(b[i],b[n2-1-i]);
for(i=0;i<n1;i++) c[i]=a[i]-'0';
for(i=0;i<n2;i++) d[i]=b[i]-'0';
if(n2>n1){
for(i=0;i<n2;i++) swap(c[i],d[i]);
f=1;
}
if(n1>n2) swap(n1,n2);
for(i=0;i<n2;i++) h[i]=c[i]-d[i];
for(i=0;i<n2;i++){
if(h[i]<0){
h[i]=10+h[i];
h[i+1]--;
}
}
if(f==1) cout<<"-";
for(i=n2-1;i>=0;i--) {
if(l==0){
if(h[i]!=0){
l=1;
cout<<h[i];
continue;
}
}
if(l!=0) cout<<h[i];
}
}#include<bits/stdc++.h>
using namespace std;
int main(){
char a[100010],b[100010];
cin>>a>>b;
int c[100010],d[100010],h[100010],n1,n2,i,f=0,l=0;
n1=strlen(a);
n2=strlen(b);
for(i=0;i<n1/2;i++) swap(a[i],a[n1-1-i]);
for(i=0;i<n2/2;i++) swap(b[i],b[n2-1-i]);
for(i=0;i<n1;i++) c[i]=a[i]-'0';
for(i=0;i<n2;i++) d[i]=b[i]-'0';
if(n2>n1){
for(i=0;i<n2;i++) swap(c[i],d[i]);
f=1;
}
if(n1>n2) swap(n1,n2);
for(i=0;i<n2;i++) h[i]=c[i]-d[i];
for(i=0;i<n2;i++){
if(h[i]<0){
h[i]=10+h[i];
h[i+1]--;
}
}
if(f==1) cout<<"-";
for(i=n2-1;i>=0;i--) {
if(l==0){
if(h[i]!=0){
l=1;
cout<<h[i];
continue;
}
}
if(l!=0) cout<<h[i];
}
}
回复
共 13 条回复,欢迎继续交流。
正在加载回复...