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));

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容