博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2016年一些面试题的整理和心情--1异或到100
阅读量:6232 次
发布时间:2019-06-22

本文共 1496 字,大约阅读时间需要 4 分钟。

  hot3.png

2015年,被实验室项目的事情,整的焦头烂额。其中有合作不愉快的原因,也有项目本身需求的变动问题。不是不喜欢合作,而是合作需要大家团结一致。写项目期间,面临各种笔试面试之类的,大家不上心,我可以忍受。我作为负责人,必须为项目负责,项目的事情涉及的地方也确实有一点繁琐,耽误了很多复习时间。再者,我做事有原则,做好一件事再说另一件事,虽然大家都认为找工作比实验室项目重要,但是没有别人接手之前,还是应该为项目负责的。那些对于现在做的事情不负责任的人,怎么能相信他们能对以后的事情负责。

也是因为项目的事情,没时间复习,再加上原来基础也没那么牢固,所以笔试屡受挫折。还好,我喜欢数学,个人智力能力也说得过去,因此还是有个面试机会的,比如京东。但是昨天得知二面没过,没有太多伤心,因为他问的问题并不是太难,我如果不做项目负责人,这些问题,完全在能力范围之内的。我只能说有点遗憾,不能说是损失。就是损失也是京东的损失,而不是我的损失。我就是有这样的自信。

不过说到底,还是自己水平不行。被耽误,被坑只是客观原因。之前实在是没空写博客,但是现在意识到需要整理,又正好有时间,就整理一下。

计算 1^2^3^4.....^100:

这个问题,其实在笔试的时间内,不太容易想出来。后来我用了我的咒语去解题。咒语很两句话,第一句是,充分挖掘已知条件。第二句是,看出考点在哪里,按照考点解决。其中第二句很有意思,那是我在06年初三复习班上想明白的。如果这道题放在位运算的一章,相信大家都会做了。这就是位运算的题。既然是位运算的题,那么讲十进制数转成二进制数再说,转谁呢?转1?没意义。所以转100,倒着运算就行。100的2进制数是1100100,7位数。异或是什么意思?同0异1。先看第一位,99的2进制数是1100011,第一位是一样的。直到64,其最高位都是1,因此,有100-64+1=37个1,也就是37个1一起异或,结果呢?当然是1,也就是说,最高位异或结果是1。接着看第二位,32-63时,次高位是1,96-100时,次高位也是1。也就是有37个1异或。以此类推。实质是分别求,各位上的数字:有单数个数字,此位为1,则异或结果,此位为1。有双数个数字,此位为1,则异或结果,此位为0。最后计算最终结果。

问题在于,其他位怎么以此类推。常规的,比如1-100中,第4位数,也就是2的3次方这个位上,异或结果是多少呢?首先2的3次方是8,因此,小于8的数,此位为0,异或结果当然也是0,8-15这8个数字,在此位上为1,下一个数,此位为1是16+8,这样连续8个数字又是此为位1,下一个连续的8个数,此位为1,是32+8。下一个段是32+16+8,下一段是64+8,下一段是64+16+8,下一段是64+32+8(超了100,结束)。这种方法不简单。但是我目前没想到更好的方法。

(接上面的例子)也就是说,可以先求1-100中,有多少个完整的第4位数为1的序列段,

      1000  -   1111(8-15)连续8个,中间隔了8个数

    11000  -  11111(24-31)又连续8个,中间隔了8个数

  101000 - 101111(40-47)又连续8个,中间隔了8个数

  111000 - 111111(56-63)又连续8个,中间隔了8个数

1001000-1001111(56-63)又连续8个,中间隔了8个数

。。。。。(同理,如果是求第5位数上的1出现次数,连续16个,隔16个,又连续16个。。。)。。。。。

转载于:https://my.oschina.net/jiler/blog/511628

你可能感兴趣的文章
CollectionUtil
查看>>
平衡二叉树
查看>>
Android应用开发新路线
查看>>
smartHost 北京服务器
查看>>
制作自己的网络字体
查看>>
Xcode的包管理器:Alcatraz
查看>>
WinForms Adorner UI Manager v16.1支持高亮特定控件
查看>>
开源 免费 java CMS - FreeCMS1.2-功能说明-会员管理
查看>>
apache的mime.types作用
查看>>
语言的对于处理器的字长问题
查看>>
Virgo IDE Milestones
查看>>
查询数据库布局信息
查看>>
Android高手进阶(一)AIDL跨进程调用
查看>>
cocos2d-iphone之魔塔20层第八部分
查看>>
JSTL 核心标签库 使用
查看>>
安装Robot Framework-Mac
查看>>
mysql 多表 update sql语句总结
查看>>
Redhat 6 升级 openssl-1.0.2m 、openssh-7.6p1 和 ntp-4.2.8p10
查看>>
Spring-boot添加Mybatis
查看>>
一个早期前FB员工是如何搞砸了自己的工作,失去了1亿8千5百万美元
查看>>