【华为OD机试2023】二进制差异数 100% C++ Java Python

【华为OD机试2023】二进制差异数 100% C++ Java Python

前言

如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议!

本文解法非最优解(即非性能最优),不能保证通过率。

Tips1:机试为ACM 模式

你的代码需要处理输入输出,input/cin接收输入、print/cout 格式化输出

Tips2:机试按通过率算分

复杂题目可以考虑暴力破解,再逐步优化,不是运行超时就无法得分,比如一个分数为200的题目,当前通过率为50%,那么最终分数就是200*50%=100分

题目

题目描述

对于任意两个正整数A和B,定义它们之问的差异值和相似值:

差异值:A、B转换成二进制后,对于二进制的每一位,对应位置的bit值不相同则为1,否则为0;

相似值:A、B转换成二进制后,对于二进制的每一位,对应位置的bit值都为1则为1,否则为0;

现在有n个正整数A0到A (n-1),问有多少(i, j) (0<=i

假设A=5,B=3;则A的二进制表示101;B的二进制表示011;

则A与B的差

你可能感兴趣的:(python,c++,华为,c++,java)