二进制加法

字符串加法

http://www.nowcoder.com/questionTerminal/829ae8987a424bd6b9a95a240ebdb0e3

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        String b = sc.next();
        System.out.println(new Main().add(a, b));
    }
    public String add(String a, String b){
        int c = 0;//进位,初始为0
        StringBuilder sb = new StringBuilder();
        for(int i = a.length() - 1, j = b.length() - 1;;--i, --j){
            if(i < 0 && j < 0) break;
            int t1 = (i >= 0)? a.charAt(i) - '0': 0;//较短串该位没数就当0
            int t2 = (j >= 0)? b.charAt(j) - '0': 0;
            sb.append((t1 + t2 + c)%2);//每一位都是两个对应的位再加进位%2
            c = (t1 + t2 + c)/2;//只要和大于等于2就进位1,更新进位
        }
        if(c == 1) sb.append("1");//最高位的进位检查
        return String.valueOf(sb.reverse());//最高位应该在最左边
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-01 11:47
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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