8 条题解
-
1
《两行》
绝对不是闲的没事#include <bits/stdc++.h> using namespace std;int c[100000];int a[100000];int b[100000];int main(){string a1,b1;int lena,lenb;cin>>a1>>b1;lena=a1.length();lenb=b1.length();for(int i=0;i<lena;i++){a[lena-i]=a1[i]-48;}for(int i=0;i<lenb;i++){b[lenb-i]=b1[i]-48;}int lenc=1;int f=0;while (lenc<=lena || lenc<=lenb){c[lenc]=a[lenc]+b[lenc]+f;f=c[lenc]/10;c[lenc]%=10;lenc++;}c[lenc]=f;if(c[lenc]==0){lenc--;}for(int i=lenc;i>0;i--){cout<<c[i];}return 0;}
-
0
#include<bits/stdc++.h> using namespace std; int main(){ string a,b,c=""; cin>>a>>b; reverse(a.begin(),a.end()); reverse(b.begin(),b.end()); if(a.length()<b.length()){ swap(a,b); } int z,r=0; for(int i=0;i<b.length();i++){ z=a[i]-'0'+b[i]-'0'+r; c+=z%10+'0'; r=z/10; } for(int i=b.length();i<a.length();i++){ z=a[i]-'0'+r; c+=z%10+'0'; r=z/10; } if(r==1){ c+=r+'0'; } reverse(c.begin(),c.end()); cout<<c; return 0; }
-
0
~我讨厌高精度~ 代码来自王梓印,感谢~ 上代码(爸爸点个赞再走吧,谢谢)
#include <stdio.h> #include <string.h> #define M 200 char s1[M], s2[M]; int a[M], b[M]; int main() { int n1, n2, c, t, i; scanf("%s", s1); scanf("%s", s2); n1 = strlen(s1); n2 = strlen(s2); if (n1<n2) t = n2; else t = n1; c = t; for (i = 0; i<n1; t--, i++) a[t] = s1[n1 - 1 - i] - '0'; for (t = c, i = 0; i<n2; t--, i++) b[t] = s2[n2 - 1 - i] - '0'; for (i = c; i >= 0; i--){ a[i] += b[i]; if (a[i] >= 10){ a[i] -= 10; a[i - 1]++; } } if (a[0] != 0) for (i = 0; i <= c; i++) printf("%d", a[i]); else for (i = 1; i <= c; i++) printf("%d", a[i]); printf("\n"); return 0; }
-
-1
高精,还刑。
#include<bits/stdc++.h> using namespace std; int main(){ string a,b,c=""; cin>>a>>b; reverse(a.begin(),a.end()); reverse(b.begin(),b.end()); if(a.length()<b.length()){ swap(a,b); } int z,r=0; for(int i=0;i<b.length();i++){ z=a[i]-'0'+b[i]-'0'+r; c+=z%10+'0'; r=z/10; } for(int i=b.length();i<a.length();i++){ z=a[i]-'0'+r; c+=z%10+'0'; r=z/10; } if(r==1){ c+=r+'0'; } reverse(c.begin(),c.end()); cout<<c; return 0; }
-
-2
#include<bits/stdc++.h> using namespace std; int a[1005],b[1005],c[1005]; int main(){ string s1,s2; cin>>s1>>s2; for(int i=0;i<s1.size();i++) { a[i]=s1[s1.size()-1-i]-'0'; } for(int i=0;i<s2.size();i++) { b[i]=s2[s2.size()-1-i]-'0'; } int w=max(s1.size(),s2.size()); for(int i=0;i<w;i++) { c[i]+=a[i]+b[i]; if(c[i]>=10) { c[i+1]+=c[i]/10; c[i]=c[i]%10; } } if(c[w]!=0) { w=w+1; } int lo=w-1; for(int i=lo;i>=0;i--) { cout<<c[i]; } }
-
-2
#include <iostream>//头文件 using namespace std;//标准命名空间 int main() { string a,b; cin>>a>>b; int num=(a.length()>b.length()?a.length():b.length()); int A[num]={0}; for(int i=0;i<num;i++) A[i]=(i<a.length())?(a[a.length()-i-1]-48):0; int B[num]={0}; for(int i=0;i<num;i++) B[i]=(i<b.length())?(b[b.length()-i-1]-48):0; int C[num+1]={0}; for(int i=0;i<num;i++){ C[i]+=A[i]; C[i]+=B[i]; if(C[i]>9){ C[i]-=10; C[i+1]++; } } bool Y=1; for(int i=num;i>=0;i--){ if(C[i]!=0&&Y){ Y=0; cout<<C[i]; } else if(Y==0) cout<<C[i]; } cout<<endl; system("pause"); return 0; }
-
-4
#include <iostream> using namespace std; int main() {
string a,b; cin>>a>>b; int num=(a.length()>b.length()?a.length():b.length()); int A[num]={0}; for(int i=0;i<num;i++) A[i]=(i<a.length())?(a[a.length()-i-1]-48):0; int B[num]={0}; for(int i=0;i<num;i++) B[i]=(i<b.length())?(b[b.length()-i-1]-48):0; int C[num+1]={0}; for(int i=0;i<num;i++){ C[i]+=A[i]; C[i]+=B[i]; if(C[i]>9){ C[i]-=10; C[i+1]++; } } bool Y=1; for(int i=num;i>=0;i--){ if(C[i]!=0&&Y){ Y=0; cout<<C[i]; } else if(Y==0) cout<<C[i]; } cout<<endl;
}
- 1
信息
- ID
- 482
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 582
- 已通过
- 81
- 上传者