长整数相加

题目链接: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;
}
全部评论

相关推荐

面了这么多场试,总有公司总喜欢压力面一个小时面试+手撕,哪里不会就点哪里,说了不会不会还继续追着问不尊重求职者,稍微有些细节记不清了,就开始怀疑项目真实性以及人格让求职者开摄像头但是自己不开,说话声音还贼小,pardon几次就开始不耐烦的不知道这个算不算,手撕的时候,面试官人跑了。。。最后快结束才来
一纸丿繁华丶:你换位思考一下,自己在职场被领导push麻了,身心俱疲,现在有个机会让你放松一下,体验一把上位者的感觉,还能看着那些高学历人才、未来自己的竞争者,抓耳挠腮、手足无措的样子,没给你当场笑出来就不错了,理解一下面试官吧。
点赞 评论 收藏
分享
05-19 19:57
蚌埠学院 Python
2237:Gpa70不算高,建议只写排名,个人技能不在多而在精,缩到8条以内。项目留一个含金量高的,减少间距弄到一页,硕士简历也就一页,本科不要写很多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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