论公司面试题高等难度的解题思路

 该题是我昨日收到的公司面试题,当时想了半个多小时想歪了,今天吃完晚饭本着对技术的追求对此题进行了一个深入的思考,大家可以观察一下此题,可以发现并不是一眼就能看出答案的存在。

对待有些难度的题,应该要寻找可能的解题思路,根据本题的第一句话可以得知一共有一百万个开关,由此我们可以得出什么对我们结题有益的信息呢?可以看出一百万是一个徐晃的数字,容易让我们心生畏惧,但解题的第一步恰好或许与此有关呢,冷静下来思考出题的人并不会让我们真的去算出来这么多的数,而是变相的告诉我们要从规律下手,只要知道了规律那么再多的数都一样。

我们假设有一百个数,一百个数找出规律足矣,本题我妄图从100开始倒推后发现并不能解题,一开始我想的是先找偶数的规律,经过计算发现100是开着的,然后往下找98,96,我发现98是关着的,我那时觉得我找到了规律,以为每两个偶数之间会是一开一关,觉得96会是开着的,经过计算,很遗憾他是关着的,由此我就仿佛失去了方向,但我寻找了100为什么不同于98和96的原因,因为只有两个数相乘的结果为100才会让100被按下一次开关,在这里还要明白这两个数相互抵消,因为这两个数都会导致100被按下开关键,那么100的开关状态就会回到原点,但100很特殊,因为10乘10等于一百,而这两个数其实是一个数,所以100之前被按下开关的次数是奇数,然后到100后按下100那么100被按下的次数就是偶数就是开着的,但当时我想的比较简单没有其他思路,发现没思路后立刻调整思路,从题所说的是2开始,计算后发现2,3,5,6都是关着的,就开始发散性的思考,2只能除以自身,3也是,4还能除以2,但4是开的,五只能除以自身,六除了自身还能除以2,这里思考为什么六是关着的而四却是开着的呢?想着想着就和之前得到的结论结合起来10乘10等于一百,恍然大悟,原来如果一个数能被除开的那两个数不相同也就意味着没有按到这个数之前他被按下的次数永远是偶数,那么等到按下自己的那一刻就是奇数,开关就关了,而像10乘10,2乘2这样相同的两个数就只会被按下一次也就是和其他数最大的不同就是在按到自己之前按得总次数是奇数,按下自己的那一刻变成了偶数也就回到了原点--->开关初始的状态,第一个开关没有被按下过那么是开着的,接下来第二个开着的开关就应该是2乘2,第四个,以此类推,第九百九十九个开着的开关就是999乘以999=998001。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值