2024-08-03 21:53:39
发布于:湖南
就差一题就制霸高精度橙题了
在洛谷测试了一下,AC了
但在这里全WA
#include <iostream>
#include <cstdio>
using namespace std;
int val[] = {0, 2, 3, 5, 7, 11, 13};
int a[6], b[6], c[7];
int lena, lenb, lenc;
int main(){
string s;
cin >> s;
int i;
for(i = 0; s[i] != '+'; i++){//输入第一个数
if(isdigit(s[i])){
if(i && isdigit(s[i - 1])) a[1] = a[1] * 10 + s[i] - '0';
else a[++lena] = s[i] - '0';
}
}
for(i = i + 1; s[i] != '\0'; i++){//输入第二个数
if(isdigit(s[i])){
if(isdigit(s[i - 1])) b[1] = b[1] * 10 + s[i] - '0';
else b[++lenb] = s[i] - '0';
}
}
for(int i = 1; i <= lena / 2; i++){//反转
swap(a[i], a[lena - i + 1]);
}
for(int i = 1; i <= lenb / 2; i++){
swap(b[i], b[lenb - i + 1]);
}
lenc = max(lena, lenb);
for(int i = 1; i <= lenc; i++){//相加
c[i] += a[i] + b[i];
if(c[i] >= val[i]){
c[i + 1]++;
c[i] -= val[i];
}
}
if(c[lenc + 1]) lenc++;
while(c[lenc] == 0 && lenc >= 1) lenc--;
cout << c[lenc];
for(int i = lenc - 1; i >= 1; i--){
cout << ',' << c[i];
}
return 0;
}
全部评论 2
我勒个大豆洛谷都对了
2024-08-03 来自 湖南
0顶
2024-08-03 来自 湖南
0
有帮助,赞一个