2 条题解
-
0
#include<bits/stdc++.h> using namespace std; struct node { int a[510],len; node() { len=1; memset(a,0,sizeof(a)); } }; int cmp(node n1,node n2) { if(n1.len>n2.len) return 1; if(n1.len<n2.len) return -1; for(int i=n1.len;i>=1;i--) { if(n1.a[i]>n2.a[i]) return 1;//A>B if(n1.a[i]<n2.a[i]) return -1;//A<B 注:此处不能用else } return 0;//A==B } node operator-(node n1,node n2)//默认n1比n2大 { node no; no.len=n1.len; for(int i=1;i<=no.len;i++) no.a[i]=n1.a[i]-n2.a[i]; for(int i=1;i<=no.len;i++)if(no.a[i]<0)no.a[i+1]--,no.a[i]+=10; int i=no.len; while(no.a[i+1]>0) { i++; no.a[i+1]+=no.a[i]/10; no.a[i]%=10; } while( (no.a[i]==0) && (i>1)) i--; no.len=i; return no; } int main() { node no,n1,n2; char st[511]; scanf("%s",st+1); n1.len=strlen(st+1); for(int i=1;i<=n1.len;i++) n1.a[n1.len-i+1]=st[i]-'0'; scanf("%s",st+1); n2.len=strlen(st+1); for(int i=1;i<=n2.len;i++) n2.a[n2.len-i+1]=st[i]-'0'; if(cmp(n1,n2)>=0) no=n1-n2; else printf("-"),no=n2-n1; for(int i=no.len;i>=1;i--) printf("%d",no.a[i]); printf("\n"); return 0; } -
0
- 1
信息
- ID
- 93
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 8
- 标签
- 递交数
- 610
- 已通过
- 110
- 上传者