316 条题解
-
0
//第318题答案 #include <bits/stdc++.h> using namespace std; string s1,s2; int len1,len2,x,y=0,a[40]={0},b[40]={0},c[40]={0}; char j; bool f; int main() { cin>>s1>>s2>>j; if(j=='+') { int len1=s1.size(); int len2=s2.size(); for(int i=0;i<len1;i++) a[i]=s1[len1-i-1]-'0'; for(int i=0;i<len2;i++) b[i]=s2[len2-i-1]-'0'; int maxlen=max(len1,len2); for(int i=0;i<=maxlen;i++) { x=a[i]+b[i]+y; c[i]=x%10; y=x/10; } if(c[maxlen]0) { for(int i=maxlen-1;i>=0;i--) { cout<<c[i]; } } else { for(int i=maxlen;i>=0;i--) { cout<<c[i]; } } } if(j'-') { int len1=s1.size(); int len2=s2.size(); f=true; if(len1<len2||(len1==len2)&&(s1<s2)) { f=false; } for(int i=0;i<len1;i++) a[i]=s1[len1-i-1]-'0'; for(int i=0;i<len2;i++) b[i]=s2[len2-i-1]-'0'; for(int i=0;i<len1;i++) { if(a[i]<b[i]) { a[i+1]=a[i+1]-1; a[i]=a[i]+10; c[i]=a[i]-b[i]; } else c[i]=a[i]-b[i]; } int k=len1; while(c[k]0&&k>0) k--; if(ffalse) cout<<"-"; for(int i=k;i>=0;i--) cout<<c[i]; } return 0; }
信息
- ID
- 104
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 271
- 已通过
- 69
- 上传者