倒霉的KaiYuan为了不再被计组老师点到,于是认认真真的学了一节课。这道题就是从课上学到的捏(芝士,与你分享)
总所周周知,电脑中的数据都是由0,1组成的,为了计算除法,巨佬前辈们用了一种巨神奇的方法来对二进制数进行除法运算,即补码加减交替法。具体的用法如下:
如上图样例,最后商的结果就是c=q1q2q3q4即商的二进制为0101,去除前导0后最终结果为101.
题目呢很简单,就是模拟上面的过程,求出x/y的商(向下取整)。
Tip:(补码的负数即为对补码按位取反,最后再加一)(字符串首位为1表示该数为负数,首位为0为正数)
输入:
一共t组数据,
每组数据由两行01字符串组成,第一行为带字符位的二进制的表示,第二行为y带字符位的补码的二进制的表示。数据保证一定有结果。(x和y的长度范围均为2-1000),
为简化题目,舍去了小数点但依旧保留字符位即首位字符(首位为1说明该数为负数,否则为正数),在本题中,所有数据均为正数即首位字符固定为0。
输出:
x/y的商的二进制表达式(去除前导0)
3
0101001
0111
01110
010
01001
01101
101
111
0
1 101 111
0