0
已解决
陈曦
资深天翼
资深天翼
0
已采纳
许梦琪
新手守护
新手守护
把高精度加法代码改一下(for部分)
for(int i=1;i<=c[0];i++){
if(a[i]<b[i]){
a[i]+=10;
a[i+1]--;
}
c[i]=a[i]-b[i];
}
while(c[c[0]]==0&&c[0]>1) c[0]--;
0
0
0
0
陈正朔
初级光能
初级光能
和高加差不多
将x,y相减
a[0]=x.length(),b[0]=y.length();
c[0]=max(a[0],b[0]);
for(int i=1;i<=a[0];i++){
a[i]=x[a[0]-i]-'0';
}
for(int i=1;i<=b[0];i++){
b[i]=y[b[0]-i]-'0';
}
for(int i=1;i<=c[0];i++){
if(a[i]<b[i]){
a[i+1]--;
a[i]+=10;
}
c[i]=a[i]-b[i];
}
while(c[c[0]]==0) c[0]--;
for(int i=c[0];i>=1;i--) cout<<c[i];
0
汪宇航
新手启示者
新手启示者
const int MAXN=100005;
int A[MAXN],B[MAXN],C[MAXN],ANS[MAXN],LEN_A,LEN_B,LEN_ANS;
void Read(int *A,int &LEN){
string cur;
cin>>cur;
LEN=cur.length();
for(int i=0;i<LEN;i++){
A[i]=cur[i]-48;
}
reverse(A,A+LEN);
}
int main(){
Read(A,LEN_A);
Read(B,LEN_B);
LEN_ANS=max(LEN_A,LEN_B);
for(int i=0;i<=LEN_ANS;i++){
ANS[i]=A[i]-B[i]-C[i]; if(ANS[i]<0){
C[i+1]++,ANS[i]+=10;
}
}
while(ANS[LEN_ANS]>1&&ANS[LEN_ANS-1]==0){
LEN_ANS--;
}
for(int i=LEN_ANS-1;i>=0;i--){
cout<<ANS[i];
}
return 0;
}