2019-08-07 字符串加法

问题

输入两个字符串a和b,字符串内容为二进制数字,求两个字符串相加的结果,加法计算方法以二进制方式计算,并返回对应的字符串结果。要求程序尽可能的高效。示例如下:

输入输出描述

import java.util.*;

public class Main

{

    public static String add(String a, String b) {

        StringBuilder sb = new StringBuilder();

        int x = 0, y = 0, pre = 0, sum = 0;

        while (a.length() != b.length()) {

            if (a.length() > b.length()) {

                b = "0" + b;

            } else {

                a = "0" + a;

            }

        }

        for (int i = a.length()-1; i >= 0; i--) {

            x = a.charAt(i) - '0';

            y = b.charAt(i) - '0';

            sum = x+y+pre;      // 低位做加法

            if (sum >= 2) {

                pre = 1;

                sb.append(sum-2);

            } else {

                pre = 0;

                sb.append(sum);

            }

        }

        if (pre == 1) {

            sb.append("1");

        }

        return sb.reverse().toString();

    }

    public static void main(String[] args) {

        String str1 = null;

        String str2 = null;

        Scanner scan = new Scanner(System.in);

        if (scan.hasNext()) {

            str1 = scan.next();

            str2 = scan.next();

        }

        System.out.println(add(str1, str2));

    }

}

你可能感兴趣的:(2019-08-07 字符串加法)