智力题(第一集)

问题一:对一批编号为1~100 全部开关朝上开的灯进行以下操作 凡是1 的倍数反方向拨一次开关2 的倍数反方向又拨一次开关3 的倍数反方向 又拨一次开关。。。 问最后为关熄状态的灯的编号。
答案:1 4 16 25 36 49 64 81 100
分析:
第一步:比如这是10号灯,1,2,5,10的倍数时都会朝反的方向拨一次,再拨一次就是11的倍数才会朝相反的
方向拨了,跟10没有关系,你发现没有1,2,5,10都是10的因子,所以10这个位置要拨4次,因为它有4个因子,分别是1,2,5,10,所以当是1的倍数时10拨一次,2的倍数时10拨一次,5的倍数时10又拨一次,10的倍数时10最后拨一次,同理,我们再看看20,20的因子是1,2,4,5,10,20,于是,每当1的倍数,2的倍数,4的倍数,5的倍数,10的倍数,20的倍数时20这个位置都要拨一次,依此类推。那么我们就可以得到一个结论,每个位置的拨 的次数就是它的因子个数。
第二步:我们既然知道了该位置的因子个数,就应该知道该位置有多少因子数就会拨多少次,如果因子数是偶数个,那么相当于没有变化,形如(10),只有是奇数个数的时候,开关才会是关着的,想到这里已经成功了一半,现在就是如何求解因子个数了,如何找出奇数的个数,1*10=10,2*5=10;1*20,2*10,4*5,你发现没有,都是成对出现的,如果是4,它的因子是1,2,4,因为2占了2个,所以任何数的因子都是成对出现的,除了平方数,因为它的平方数消耗了一个因子数,所以4的因子数是1,2,4;而9的因子数是1,3,9…由此得出结论,1-100的所有关熄灯的编号是1,4,9,36,49,64,81,100.

#include <iostream>
using namespace std;
void Grial(int a[])
{
    for(int i=1;i<=100;i++)
    {
        for(int j=i;j<=100;j++)
        {
            if(i%2!=0)
                {
                if(j%i==0)
                        if(a[j]==0)
                         a[j]=1;
                        else a[j]=0;
                }
            else
                {   
                if(j%i==0)
                    if(a[j]==1)
                  a[j]=0;
                    else a[j]=1;
                }
     }
    }
    for(int i=1;i<=100;i++)
        {
            if(a[i]==1)
            {
                cout<<i<<endl;
            }
        }
}
int main()
{
    int a[100];
    for(int i=1;i<=100;i++)
        {
            a[i]=0;
        }
    Grial(a);
    return 0;
}

第二题:
一个屋子有一个门(门是关闭的)和3盏电灯。屋外有3个开关,分别与这 3盏灯相连。你可以随意操纵这些开关,可一旦你将门打开,就不能变换开关了。 确定每个开关具体管哪盏灯。
答案:先在门外打开一个开关,等一会儿,然后关掉它,再另开一个开关,再走到屋内,热而不亮的一个灯泡是第一个开关所控制,亮的便是第二个,不亮又不热的便是第三个开关所控制的了。
分析:这个灯如果是发热量少,那该等多久才可以靠人体的感觉判断啊,我不进去,让我弟弟进去看看不行吗?或者在里面装个摄像头,把里面的情况反馈出来也好,总而言之,这题感觉不靠谱。

第三题:
如果你有无穷多的水,一个3kg的和一个5kg的提桶,你如何准确称出 4kg的水?
答案:1.设3kg提桶为A,5kg提桶为B,先将B装满,然后从B里面往A倒水,直到A装满,那么B还
剩下2kg。
2.将A里面的水全部倒走,此时A空了,B还剩2kg,将B里面最后的2kg再倒给A,B空了,A里面有2kg.
3.将B装满(5kg),往A里面倒水,直到装满,因为A只查1kg就满了,于是B桶倒完之后剩下的就是
4kg为所求。

第四题:
有4个女人要过一座桥。她们都站在桥的某一边,要让她们在17分钟内全 部通过这座桥。这时是晚上。她们只有一个手电筒。最多只能让两个人同时过桥。 不管是谁过桥,不管是一个人还是两个人,必须要带着手电筒。手电筒必须要传来 传去,不能扔过去。每个女人过桥的速度不同,两个人的速度必须以较慢的那个人 的速度过桥。
  第一个女人:过桥需要1分钟;
  第二个女人:过桥需要2分钟;
  第三个女人:过桥需要5分钟;
  第四个女人:过桥需要10分钟。

比如,如果第一个女人与第4个女人首先过桥,等她们过去时,已经过去了10 分钟。如果让第4个女人将手电筒送回去,那么等她到达桥的另一端时,总共用去 了20分钟,行动也就失败了。怎样让这4个女人在17分钟内过桥?还有别的什么方 法?
答案: 1.第一个女人很第二个女人过去 ——–耗时2分钟。
2.第一个女人回来 。 ——-耗时1分钟。
3.第三个女人跟第四个女人过去 ——-耗时10分钟。
4.第二个女人回来。 ——-耗时2分钟。
5.最后剩下的第一个女人跟第三个女人过去—-耗时2分钟
总共花费17分钟。
分析:
中转的时候选择一个耗时最少的人送手电筒回来,类似的题还有如下一个:
农夫要带着羊,白菜,狼要过河,只有一条船,船只能载2个东西过去,如果农夫带白菜过去,狼就会吃羊,
如果农夫带狼过去,羊就会吃白菜,请问怎么做才可以让农夫没有任何损失的到达河岸呢?
答案:
1.先将羊带过河岸。
2.再将白菜带过河岸,顺便把羊带回来。(防止羊吃白菜)
3.再将狼带过河岸。
4.最后将羊带过去。

第五题:
你有四人装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被 污染的重量+1.只称量一次,如何判断哪个罐子的药被污染了?
答案:从第一个药罐取1颗,第二个药罐取2颗,第三个药罐取3颗,第四个药罐取4颗。
如果总质量+1,则是第一个药罐被污染,如果总质量+2,则是第二个药罐。。。
分析:曾记得小学时候这个题都不算奥数题。

第六题:
有7克、2克砝码各一个,天平一只,如何只用这些物品三次将140克的盐 分成50、90克各一份?
答案:1。将140g均分2份,每份70g。
2.再将其中一份的70g均分两份,一份35g.
3.将一份35g的放在天平左边,7g砝码也放在天平左边,左边(42g),然后将2g砝码放在
天平右边,右边(2g),此刻从左边取盐到右边,知道平衡,右边=2g+20g盐,然后将砝码
拿出,将余下的20g盐跟70g未使用的盐放置在一起就凑成了90g,余下的盐再混合到一起凑成
50g。

第七题(感觉经典)
一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少 有一顶。每个人都能看到其他人
帽子的颜色,却看不到自己的。主持人先让大家看 看别人头上戴的是什么帽子,然后关灯,如果有人认为
自己戴的是黑帽子,就打自 己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦
雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑 帽子?
答案:3人戴黑色帽子。
分析:1.我们假设只有一顶帽子,那么戴这顶帽子的人第一次就会发现全场没有一顶黑帽子,且舞会中至少有
一顶黑帽子,于是他可以肯定他自己戴的黑帽子,在第一次关灯时,他会打自己,可是他没有打自己,于是我们
推断至少有2顶黑帽子。
2.此刻我们假设只有2顶黑帽子,分别戴在A,B头上,第一次关灯时A,B都看见了彼此的头上是黑色的帽子
,他们都不确定自己头上帽子的颜色,于是都不会打自己,但是当第二次关灯时,A,B分别发现对方在第一次
关灯时都没有打自己,说明此时自己戴的也是黑帽子,于是此刻A,B会确定自己戴的是黑帽子,他们会打自己。
可是此刻没有出现耳光声,所以推断至少是3人戴黑帽子。
3.我们此刻假设只有3顶黑帽子,分别戴在A,B,C的头上,第一次不会打,但是第二次C如果戴的是白色的帽子,
A,B就会打自己起来,可是第二次关灯时他们也没有打,于是C就会知道他的头上肯定是黑帽子,同理A,B跟C的情况
一模一样,于是他们都会自己打自己。题目中刚好在第三次关灯的时候打起来了,由此推断只有3定帽子,同理可以
得出第几次有打耳光的声音,那么就有几顶黑帽子。

第八题:
假设时钟到了12点。注意时针和分针重叠在一起。在一天之中,时针和分 针共重叠多少次?你知道它们重叠时的具体时间吗?
答案:时针与分针共重叠12次。重叠时间计算如下,小学的追及问题。
1.从12点开始,此刻分针与时针重合,分开之后当时针指向1时,分针刚好指向12,设时针速度为x,那么分针速度就是
12x,此刻分针与时针相距60分钟,分针开始追时针,x+60=12x,得到x大约为5。于是此时分针与时针都大概指向了1点5分。
2.第二次从1点5分开始,再走一个小时,即分针指向1点5分位置,此刻时针指向2点5分,设时针速度为x,那么分针速度就是
12x,此刻分针与时针相距60分钟,分针开始追时针,x+60=12x,得到x大约为5.于是此时分钟与时针都大概指向了2点10分。
3……依次类推,3点15,4点20,5点25,6点30,7点35,8点40,9点45,10点50,11点55,12点0分。总共相遇了12次。
哈哈,论小学数学知识的重要性。

第九题:求1000!的位数?
答案:2567
分析:有一个对数公可以推出一个数的位数的,位数=lgN+1,如果N是100,那么位数=lg100+1=3.
为什么可以有这么一个公式呢?其实也不太难想象,如果N=2340,那么lgN=lg(2.34*10^3),
lgN=lg(2.3)+lg(10^3)=3+lg(2.3)因为lg(2.3)占一位,所以我们向上取整,+1可以表示,
所以N=2340的位数=lg(2340)+1=3+1=4;
如果N=500000呢?那么lgN=5*10^6=lg5+5=5+1=6;
我想本质就是将一个数字化做除以10,直到只剩1位数之后停止,有所少个10就是多少位,
再加上未除的最后一位数就是总共的位数。
所以lg1000!=lg1+lg2+lg3+…lg1000;
这个求和公式等于在[1,1000]这个区间与x轴围成的面积。你还记得定积分的计算公式吗?我也忘记了,
查查,∫lgxdx=(xlnx-x)/(ln10)。(谁会记得这个公式呢?)
lg1000!=(1000ln(1000)-1000)/ln10=2567.
e=2.7,ln1000大约等于7,1000*7-1000=6000,ln10约等于2-3,所以最后的结果应该是2000-3000.
2567这个答案吗?我想如果你回答到这一步,真实答案是什么已经无所谓了,不是吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值