程序员面试中看到一题,结果认为不对。。。

sdudubing 2014-05-06 01:42:47


写程序出来结果是504,求解。

对上面描述不明白的是咋就是求平均了?
...全文
152 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
图灵狗 2014-05-06
  • 打赏
  • 举报
回复
攻击别人之前先好好看看自己,如果是理解能力有限那还好。
引用 6 楼 shenzhimingdashen 的回复:
[quote=引用 5 楼 turingo 的回复:] 把x+y分解为x和y相同位相加与x和y不同位相加之和,例如: 5 + 6 -> 101 + 110 -> (100 + 100) + (001 + 010) -> 1000 + 011 -> 8 + 3 -> 11 [quote=引用 楼主 sdudubing 的回复:] 写程序出来结果是504,求解。 对上面描述不明白的是咋就是求平均了?
[/quote] 你又不看清题目就发言了,真捉急。[/quote]
Jim_sh 2014-05-06
  • 打赏
  • 举报
回复
引用 5 楼 turingo 的回复:
把x+y分解为x和y相同位相加与x和y不同位相加之和,例如: 5 + 6 -> 101 + 110 -> (100 + 100) + (001 + 010) -> 1000 + 011 -> 8 + 3 -> 11 [quote=引用 楼主 sdudubing 的回复:] 写程序出来结果是504,求解。 对上面描述不明白的是咋就是求平均了?
[/quote] 你又不看清题目就发言了,真捉急。
图灵狗 2014-05-06
  • 打赏
  • 举报
回复
把x+y分解为x和y相同位相加与x和y不同位相加之和,例如: 5 + 6 -> 101 + 110 -> (100 + 100) + (001 + 010) -> 1000 + 011 -> 8 + 3 -> 11
引用 楼主 sdudubing 的回复:
写程序出来结果是504,求解。 对上面描述不明白的是咋就是求平均了?
guolingxing126 2014-05-06
  • 打赏
  • 举报
回复
答案是500,
qingqing_9020 2014-05-06
  • 打赏
  • 举报
回复
转化为二进制,无非就是三种情况,举个例子:5=0000+100+01;13=1000+100+01;1)0与0对应,这种情况不论是与还是异或都是0,所以不需要考虑。2)1与1对应,这种情况下,异或为0,只考虑与,与的结果还是1,相当于两个数相加除以2,3)0与1对应,这种情况只考虑异或,>>2相当于除以2,所以不管哪种情况都相当于求平均数。
sdudubing 2014-05-06
  • 打赏
  • 举报
回复
自己搞错了,结贴
Jim_sh 2014-05-06
  • 打赏
  • 举报
回复
结果没错啊。 取相同的位,和不同的位除以2.

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧