长整数相加

题目链接:https://www.nowcoder.com/practice/49e772ab08994a96980f9618892e55b6?tpId=37&&tqId=21280&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking
解法1:
参考:https://www.nowcoder.com/profile/7467293/codeBookDetail?submissionId=12310134
疑问:没有区分正负情况,竟然AC了

#include<iostream>
#include<string>
using namespace std;
int main()
    {
    string str1;
    string str2;
    while(cin>>str1>>str2)
        {
        int len1=str1.length();
        int len2=str2.length();
        int len=len1>len2?len1:len2;
        for(int i=0;i<len;i++)
            {
            if(i>len1-1)
                str1='0'+str1;
            if(i>len2-1)
                str2='0'+str2;
        }
        string result="";
        int count=0;
        for(int i=len-1;i>=0;i--)
            {
            result+=(str1[i]-'0'+str2[i]-'0'+count)%10+'0';
            count=(str1[i]-'0'+str2[i]-'0'+count)/10;
        }
        if(count==1)
            {
            result+='1';
        }
        if(count==-1)
           {
            result+='1';
            result+='-';
        }
        for(int i=result.length()-1;i>=0;i--)
            {
            cout<<result[i];
        }
        cout<<endl;
    }
    return 0;
}

解法2:
疑惑:没有考虑正负情况,竟然AC了

链接:https://www.nowcoder.com/questionTerminal/49e772ab08994a96980f9618892e55b6
来源:牛客网

#include <bits/stdc++.h>
 using   namespace std;
int main()
{
    string str1, str2;
    while (cin >> str1>> str2)
    {
        while(str1.size()<str2.size())
        {
            str1="0"+str1;
        }
        while(str1.size()>str2.size())
        {
            str2="0"+str2;
        }
        int num=0;
        int carry=0;
        for(int i=str1.size()-1;i>=0;i--)
        {
            num = str1[i]-'0'+str2[i]-'0'+carry;
            str1[i] = num%10+'0';
            carry = num/10;
        }
        if(carry) str1="1"+str1;
        cout<<str1<<endl;
    }
    system("pause");
    return 0;
}
全部评论

相关推荐

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

创作者周榜

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