高精度减法人工智障+1

shabi 2023-11-05 21:11:34

#include<bits/stdc++.h> using namespace std; int main() { char a1[1100],b1[1100],SB[1100]; int a[1100],b[1100],c[1100]; int lena,lenb; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); cin>>a1; cin>>b1; lena=strlen(a1); lenb=strlen(b1); if((lena<lenb) || (lena==lenb&&strcmp(a1,b1)<0)){ strcpy(SB,a1); strcpy(a1,b1); strcpy(b1,SB); cout<<"-"; } for (int i=0; i<=lena-1; i++) { a[lena-i]=a1[i]-'0'; } for (int i=0; i<=lenb-1; i++) { b[lenb-i]=b1[i]-'0'; } int i=1; while((i<=lena)||(i<=lenb)) { if(a[i]<b[i]){ a[i]+=10; a[i+1]--; } c[i]=a[i]-b[i]; i++; } while(c[i]==0&&i>1)i--; for(int j=i; j>=1; j--) { cout<<c[j]; } return 0; } 输入245 1444试试,关键是这玩意还给过了哈哈哈哈哈 题目:open judge里1.6.11