一些智力题
1、怎样用一个5升的杯子和一个3升的杯子称出4升水?
先将5升的杯子装满,再将水逐渐倒入3升的杯子,那么5升的里面就省下了2升水。
将3升的杯子倒空,将5升的里面剩下的2升倒入3升的,3升的杯子里就还可以倒1升水。
再将5升的杯子装满水,倒水给3升的,就倒掉了1升,剩下了4升
我的想法是:
倾斜法,5L的装2L时,将其倾斜,一端和桶的地面齐平,另一端记录其位置做个标记,然后再往其加水,这样加到标记位置时就是4L
中线法:也是类似标记法,不再详述。
2、有四个装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被污染的重量+1.只称量一次,如何判断哪个罐子的药被污染了?
解答:第一个药瓶拿1个;第二个药瓶拿2个;第三个药瓶拿3个;第四个药瓶拿4个;
计算标准的10颗药重量,与现在的10颗药比较
如果重量多1,就是第一个药瓶污染了
如果重量多2,就是第二个药瓶污染了
如果重量多3,就是第三个药瓶污染了
3、
求多个数相乘的位数只要求他的常用对数和就可以。
log10(1)+log10(2)+···+long10(1000)取整后加1
或者
log(N!)=lnN!/ln10
=(NlnN-N)/ln10
=2565.7
so
N!=10^2565.7
=10^.7*10^2565
=5.01e2565
每出现一个2和5,就会在末尾有一个0,所以只要看,从1
到1000中总共有多少个2和5就可以了,又因为5总比2少,所以,只要看1000的阶乘中有多少个约数5就可以了。
同样,只有末尾是0或者5的数才会有5,所以总共只有200个数其中包含5,
但是,其中有1000/25=40个数包含2个5,
1000/125=8个数包含三个5,
1000/625=1个数包含4个5,
所以总共有200+40+8+1=249个5,所以结果里总共有249个连续的0。
因为从一头烧完需要1个小时,如果两头同时开始点燃,烧的速度相当于乘2,烧完的时间就变成半小时了,
网上经常问的是有两根不均匀的绳子 一根完全烧完是一个小时 如何判断30分钟和45分钟,
一根绳子两头都烧,
同时第二根只烧一头, 第一根都烧完的时候就是30分钟了
同时点燃第二根的另一头 再次烧完就是45分钟了
对一批编号为1~100,全部开关朝上(开)的灯进行以下操作:凡是1的倍数反方向拨一次开关;2的倍数反方向又拨一次开关;3的倍数反方向又拨一次开关……问:最后为关熄状态的灯的编号。
解答:
若某灯开关被转换奇数次,则最后为关熄状态
若某灯开关被转换偶数次,则最后为开启状态
某灯开关被拨时,一定是此时灯的编号是这个数的倍数,即这个数是灯的编号的余数
所以某灯开关被转换的次数等于灯的编号的约数个数
所以我们只需找到约数个数为奇数的数------------我觉得是偶数
对数n,若a是它的约数,则n/a也是它的约数,所以约数成对存在
只有当a=n/a时,约数才单独存在,此时n=a^2
所以只有平方数的约数个数为奇数
因为1-100中1,4,9,16,25,36,49,64,81,100为关熄状态。。。自己多试几次想想