20分求助
查看原帖
20分求助
1065628
Cute_zsz楼主2024/4/5 10:31
#include<bits/stdc++.h> 
using namespace std;

typedef long long ll;

const int N = 1e6+10;

ll p[8] = {0, 2, 3, 5, 7, 11, 13},
   x[10], y[10], s[10];

string a, b, tmp;

int main(){
    ios::sync_with_stdio(0), cout.tie(0), cin.tie(0);
    cin >> tmp;

    bool nowab = false;
    for(ll i = 0;i < tmp.length();i ++){
        if(tmp[i] == '+') nowab = true;
        if(tmp[i] != ',' && tmp[i] != '+'){
            if(nowab == true) b += tmp[i];
            else a += tmp[i];
        }
    }

    ll al = a.length(), bl = b.length(), ml = max(al, bl);
    for(ll i = 0;i < al;i ++) x[al - i] = a[i] - '0';
    for(ll i = 0;i < bl;i ++) y[bl - i] = b[i] - '0';

    ll r = 0;
    for(ll i = 1;i <= ml;i ++) s[i] = x[i] + y[i], r = s[i] / p[i], s[i + 1] += r, s[i] %= p[i];
    
    if(s[ml + 1]) ml ++;
    for(ll i = ml;i >= 2;i --) cout << s[i] << ',';
    cout << s[1];

    return 0;
}
2024/4/5 10:31
加载中...