码迷,mamicode.com
首页 > 其他好文 > 详细

简单模拟二进制求和

时间:2020-04-07 20:10:38      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:--   blog   std   max   %s   http   ret   c++   字符串   

题目:

给定两个二进制字符串,返回他们的和(用二进制表示)。

样例

a = 11

b = 1

返回 100

代码:

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e3+5;
char a[maxn],s1[maxn],s2[maxn];
int main()
{
    scanf("%s",s1);
    scanf("%s",s2);
    int len1=strlen(s1);
    int len2=strlen(s2);
    if(len1<len2) swap(s1,s2);//s1保存较长串
    len1=strlen(s1);
    len2=strlen(s2);
    int add=0;
    len1--,len2--;
    while(len2>=0)
    {
        add+=s1[len1]-0+s2[len2]-0;
        a[len1]=add%2+0;
        add/=2;
        len1--,len2--;
    }
    while(add&&len1>=0)
    {
        add+=s1[len1]-0;
        a[len1]=add%2+0;
        add/=2;
        len1--;
    }
    if(add)//最后还有进位则后移加入进位即可
    {
        for(int i=strlen(a);i>0;i--)  a[i]=a[i-1];
        a[0]=add+0;
    }
    printf("%s\n",a);
    return 0;
}

转载自https://blog.csdn.net/dl962454/article/details/80874715?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1

简单模拟二进制求和

标签:--   blog   std   max   %s   http   ret   c++   字符串   

原文地址:https://www.cnblogs.com/xxxsans/p/12655321.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!