样例都过了考虑了各种情况但是就是交不上
查看原帖
样例都过了考虑了各种情况但是就是交不上
626687
Raging_楼主2022/10/24 21:10
能不能给一下样例啊
#include<iostream>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;
int decimal[6]={2,3,5,7,11,13};
vector<int> res_1,res_2;
int res[10],longs;
string a,b;
int long_1 ;
int long_2 ;
// 输入:12,1,4,6,8+26,4,7,9,5
// 输出:3,6,1,3,0,1
void input(string s , int  x){
    int sum = 0;
    if(x == 1){
        for(int i = 0 ; i <  s.size() ; i++){
            if(s[i] == ',' ) {
            res_1.push_back(sum);
            sum = 0;
            continue;
            }
        sum = (s[i] - '0') + sum * 10;
        } 
        res_1.push_back(sum);
    }
    else if(x == 2){
        for(int i = 0 ; i <  s.size() ; i++){
            if(s[i] == ',' ) {
            res_2.push_back(sum);
            sum = 0;
            continue;
            }
        sum = (s[i] - '0') + sum * 10;
        } 
        res_2.push_back(sum);
    }
}
void add(){
    reverse(res_1.begin(),res_1.end());
    reverse(res_2.begin(),res_2.end());
    for(int i = 0 ; i < 5 ; i ++){
        if(i < long_1) res[i] = res[i] + res_1[i];
        if(i < long_2) res[i] = res[i] + res_2[i];
        if(res[i] >= decimal[i]) {
            res[i+1] = res[i] / decimal[i] + res[i+1];
            res[i] = res[i] % decimal[i];
        }
    }
}
int main(){
    getline(cin,a,'+');
    getline(cin,b);
    input(a , 1);
    input(b , 2);
    long_1 = res_1.size();
    long_2 = res_2.size();
    longs = max(long_1,long_2);
    add();
    // cout<<longs<<endl;
    if(res[longs] != 0)longs++;
    // cout<<longs<<endl;
    for(int i = longs - 1 ; i >= 0; i--)
    if(i == 0) cout<<res[i];
    else cout<<res[i]<<",";
    // for(auto it = res_1.begin() ; it != res_1.end() ; it ++) cout<<*it<<" ";
    // cout<<endl;
    // for(auto it = res_2.begin() ; it != res_2.end() ; it ++) cout<<*it<<" ";
}
2022/10/24 21:10
加载中...