【华为OD机试 2023】 二进制差异数(C++ Java JavaScript Python 100%)
对于任意两个正整数A和B,定义它们之间的差异值和相似值:
**差异值:**A、B转换成二进制后,对于二进制的每一位,对应位置的bit值不相同则为1,否则为0;
**相似值:**A、B转换成二进制后,对于二进制的每一位,对应位置的bit值都为1则为1,否则为0;
现在有n个正整数A0到A(n-1),问有多少(i, j) (0<=i<j<n),Ai和Aj的差异值大于相似值。
假设A=5,B=3;则A的二进制表示101;B的二进制表示011;
则A与B的差异值二进制为110;相似值二进制为001;
A与B的差异值十进制等于6,相似值十进制等于1,满足条件。
输入描述
一个n接下来n个正整数
数据范围:1<=n<=105,1<=A[i]<230
输出描述
满足差异值大于相似值的对数
————————————————
版权声明:本文为CSDN博主「算法大师」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/banxia_frontend/article/details/124620080
华为OD机试2022&2023(C++Java JS Py):
https://blog.csdn.net/banxia_frontend/category_12225173.html
华为OD机试2023最新题库 更新中~(C++Java JS Py):
https://blog.csdn.net/banxia_frontend/category_12228764.html
华为OD机试题库 复盘中~(C++Java JS Py):
https://blog.csdn.net/banxia_frontend/category_12257144.html