用C语言写小学一位数或两位数加一位数的进位加法题法考试

两个二进制数异或后1的个数的奇耦

假设两个二进制数分别为a,b长度均为len


假设a中的x个0有k个和b中的1进行异或产生1,那么剩下的x-k个0和b中的0异或
b中的0有x-k个被a中的0异或剩下的y-x+k个0和aΦ的1异或产生1

因此a、b异或后产生的1的总数量为 2k为偶数,所以我们只需要判断y-x的奇偶性就可以了(不需要管y-x的正负,因为可以将2k加到y上面不会改变y的奇偶性,而整个式子是严格大于等于0的)
奇数-奇数和偶数-偶数都是偶数
奇数-偶数和偶数-奇数都是奇数

两个二进制数异或后1的个数的奇耦

假设两个二进制数分别为a,b长度均为len


假设a中的x个0有k个和b中的1进行异或产生1,那么剩下的x-k个0和b中的0异或
b中的0有x-k个被a中的0异或剩下的y-x+k个0和aΦ的1异或产生1

因此a、b异或后产生的1的总数量为 2k为偶数,所以我们只需要判断y-x的奇偶性就可以了(不需要管y-x的正负,因为可以将2k加到y上面不会改变y的奇偶性,而整个式子是严格大于等于0的)
奇数-奇数和偶数-偶数都是偶数
奇数-偶数和偶数-奇数都是奇数

我要回帖

更多关于 两位数加一位数的进位加法题 的文章

 

随机推荐