题解 | #Primary Arithmetic#

Primary Arithmetic

https://www.nowcoder.com/practice/c1fb44e931394e6693671f49c899f5de

所有的情况行云流水,还考虑到了两个数的位数不同的情况,供大家参考。

#include<cstdio>
#include<stack>
#include<vector>
#include<string>
using namespace std;
int main() {
    char arr1[10];
    char arr2[10];
    while (scanf("%s %s", arr1, arr2) != EOF) {
        string s1 = arr1;
        string s2 = arr2;
        if (s1 == "0" && s1 == "0") {
            break;
        }
        int len1 = s1.size();
        int len2 = s2.size();
        stack<int> sta1;
        stack<int> sta2;
        for (int i = 0 ; i < len1 ; ++i ) {
            sta1.push(s1[i] - '0');
        }
        for (int i = 0 ; i < len2 ; ++i ) {
            sta2.push(s2[i] - '0');
        }
        vector<int> vec1;
        vector<int> vec2;
        for (int i = 0 ; i < len1 ; ++i) {
            vec1.push_back(sta1.top());
            sta1.pop();
        }
        for (int i = 0 ; i < len2 ; ++i) {
            vec2.push_back(sta2.top());
            sta2.pop();
        }
        int count = 0 ;
        int carry =0;
        for (int i = 0 ; i < len1  && i < len2; ++i) {
            if (vec1[i] + vec2[i] + carry>= 10) {
                ++count;
                carry =1;
            } else {
                carry = 0;
            }
        }
        if (count == 0) {
            printf("NO carry operation.\n");
        } else if (count == 1) {
            printf("%d carry operation.\n", count);
        } else {
            printf("%d carry operations.\n", count);
        }
    }
    return 0;
}
全部评论

相关推荐

白火同学:1、简历可以浓缩成一页,简历简历先要“简”方便HR快速过滤出有效信息,再要“历”用有效信息突出个人的含金量。 2、教育背景少了入学时间~毕业时间,HR判断不出你是否为应届生。 3、如果你的平台账号效果还不错,可以把账号超链接或者用户名贴到对应位置,一是方便HR知道你是具体做了什么内容的运营,看到账号一目了然,二是口说无凭,账号为证,这更有说服力。
面试被问期望薪资时该如何...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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