- 10.2补题场
E题题解
- 2024-10-2 21:41:54 @
看完题面可以发现这题难点主要是 加减法的进退位
下面我们来找规律:
一个二进制数 101111
对其进行 +1 操作
即得到 110000
再来一个 10110101111
+1 后得到 10110110000
可以发现当需要进位时将从后往前的第一个 0 变成了 1,其后的所有 1 都变成 0
再看减法
101001000−1=101000111
1010100−1=1010011
即需要退位时将从后往前的第一个 1 变成了 0,其后的所有 0 都变成 1
×2 在二进制中就像十进制中的 ×10 所以直接在后面添加一位 0
÷2 在二进制中就像十进制中的 ÷10 所以直接在后面去掉一位
对于加减法,同过while循环即可很容易进行处理
我们创建一个变量p,让p = n;
当为加法时
while(a[p] != '0') { a[p] = '0'; p--;
} a[p] = 1;
代表p会执行到第一个不为0的值停止,并且经过的位置全部赋值0,最终再将p位置赋值1即可
0 条评论
目前还没有评论...