算法导论三习题2.1-4代码实现

/**
 * Created by zqx on 16/8/25.
 */
public class BinaryOperation {
    private static final int MAX = 10;

    public static void main(String[] args) {
        int[] A = {0,1,1,1,0,1,0,1,1,1};
        int[] B = {1,0,0,0,1,0,1,1,0,1};
        int[] C = new int[MAX+1];
        add(A,B,C);
        for (int value : C){
            System.out.print(value);
        }
    }

    /**
     *
     * @param A 数组1
     * @param B 数组2
     * @param C 结果数组3 length 等于 A或B的length +1;
     * @return C = A + B
     */
    public static int[] add(int[] A,int[] B,int[] C){
        int carry = 0;
        for (int i = A.length;i>0;i--){
            int result = A[i-1] + B[i-1] + carry;
            C[i] = result % 2;
            carry = result > 1 ? 1 : 0;
        }
        C[0] = carry;
        return C;
    }
}

考虑把两个n位二进制整数加起来的问题,这两个整数分别存储在两个n元数组A和B中,这两个整数的和应按二进制形式存储在一个(n+1)元数组C中。

转载于:https://my.oschina.net/zqx123/blog/737680

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值