题解 | #火星A+B#

火星A+B

https://www.nowcoder.com/practice/46bb070835e548678c78477f1fb0b92e

#include <cstdio>
#include <iostream>
using namespace std;
#include <vector>
int main() {
    int num[50]={0};
    int k = 0, temp;
    for (int i = 2; i < 1000; i++) {
        temp = 0;
        for (int j = 2; j < i; j++) {
            if (i % j == 0)temp = 1;
        }
        if (temp == 0)num[k++] = i;
        if (k == 50)break;
    }
    int a[51]={0};
    int b[51]={0};
    int sum[51]={0};
    int a1=50,a2=50;
    int n;
    vector<int> vc;
    vector<int> vx;
    while(cin>>n){
        vc.push_back(n);
        char ch=cin.get();
        if(ch==' '||ch=='\n')break;

    }
    while(cin>>n){
        vx.push_back(n);
        char ch=cin.get();
        if(ch==' '||ch=='\n')break;

    }
    for(vector<int>::reverse_iterator it=vc.rbegin();it!=vc.rend();it++){
        a[a1--]=*it;
    }
    for(vector<int>::reverse_iterator it=vx.rbegin();it!=vx.rend();it++){
        b[a2--]=*it;
    }
    k=0;
    int g=0;
    for(int j=50;j>0;j--){
        int x=num[k++];
        sum[j]=(a[j]+b[j]+g)%x;
        g=(a[j]+b[j]+g)/x;
    }
    for(int j=0;j<=50;j++){
        if(sum[j]!=0){
            k=j;
            break;
        }
    }
    for(int j=k;j<=50;j++){
        cout<<sum[j];
        if(j!=50)cout<<",";
    }
    cout<<endl;
    return 0;


}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

07-23 11:23
门头沟学院 Java
点赞 评论 收藏
分享
07-24 19:01
门头沟学院 Java
后天笔试,又要开始做题了
Sairus:明天10:00笔试
投递京东等公司10个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务