一些智力题

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

1000的阶乘的结果里有多少个连续的0,怎么算?

每出现一个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个小时,问如何用烧绳子的方法来确定

燃烧速度,只与绳子材料有关

因为从一头烧完需要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为关熄状态。。。自己多试几次想想

原文地址:https://www.cnblogs.com/fickleness/p/3165334.html