5 条题解
-
-1
呵。
给你面子😕 。
#include<bits/stdc++.h> using namespace std; int a[10000]; int b[10000]; int c[10000]; int main() { string n,m; cin >>n >>m; char ch; cin >>ch; int la=n.length(); int lb=m.length(); for(int i=0; i<la; i++){ a[i+1]=n[la-i-1]-'0'; } for(int i=0; i<lb; i++){ b[i+1]=m[lb-i-1]-'0'; } if(ch=='+'){ int lc=max(la,lb)+1; for(int i=1; i<=max(la,lb); i++){ c[i]=a[i]+b[i]+c[i]; c[i+1]=c[i+1]+c[i]/10; c[i]=c[i]%10; } if(c[lc]==0){lc--;} for(int i=lc; i>0; i--){ cout <<c[i]; } } if(ch=='*'){ int lc=la+lb; for(int i=1; i<=la; i++){ for(int j=1; j<=lb; j++){ c[i+j-1]=a[i]*b[j]+c[i+j-1]; c[i+j]=c[i+j-1]/10+c[i+j]; c[i+j-1]=c[i+j-1]%10; } } if(c[lc]==0){lc--;} for(int i=lc; i>0; i--){ cout <<c[i]; } } if(ch=='-'){ int lc=la; for(int i=1; i<=la; i++){ c[i]=a[i]-b[i]+c[i]; c[i+1]--; c[i]=c[i]+10; c[i+1]=c[i+1]+c[i]/10; c[i]=c[i]%10; } if(c[lc+1]<0){ c[lc]=abs(c[lc]-10); cout<<"-"; } for(int i=lc; i>=1; i--){ if(c[i+1]==0 && c[i]==0){lc--;} else{break;} } for(int i=lc; i>0; i--){ cout <<c[i]; } } return 0; }
😔人生苦短,为何我要用C++。
- 1
信息
- ID
- 822
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 52
- 已通过
- 23
- 上传者