找回密码
 加入
搜索
查看: 3027|回复: 11

智力题目

 火.. [复制链接]
发表于 2012-10-28 18:37:15 | 显示全部楼层 |阅读模式
本帖最后由 haijie1223 于 2012-10-28 18:41 编辑

(问题)有十二个乒乓球形状、大小相同,其中只有一个重量与其它十一个不同,现在要求用一部没有砝码的天秤称三次,将那个重量异常的球找出来,并且知道它比其它十一个球较重还是较轻。

答案:
游客,如果您要查看本帖隐藏内容请回复
发表于 2012-10-28 19:19:24 | 显示全部楼层
貌似没有回复也看到了答案,奇怪
发表于 2012-10-28 19:34:06 | 显示全部楼层
其实,,,其实小弟不需要  三次   也不需要  天秤称  的办法是:
捧手上就知道了,
发表于 2012-10-28 22:09:54 | 显示全部楼层
回复 3# 魔导

捧在手里掂吧掂吧...
发表于 2012-10-28 23:44:32 | 显示全部楼层
楼上的都是高人呐   像我的话    捧两个乒乓球和捧一个重量上对我来说肯定没感觉
发表于 2012-10-28 23:47:00 | 显示全部楼层
很经典的题目~~
发表于 2012-10-29 14:01:45 | 显示全部楼层
研究研究......
发表于 2012-10-29 14:08:26 | 显示全部楼层
本帖最后由 3mile 于 2012-11-5 19:20 编辑

呵呵,很久以前写过一个12球的代码.
#include <array.au3>
local $a[12]=[1,1,1,1,1,1,1,1,1,1,1,1]


if Execute(_ArrayToString($a,"+",0,3))>Execute(_ArrayToString($a,"+",4,7)) Then;说明9,10,11,12标准
         msgbox(4096,0,"第一次左重")
        if $a[0]+$a[1]+$a[4]+$a[5]>$a[2]+$a[6]+$a[8]+$a[9] Then
                msgbox(4096,0,"第二次左重")
                if $a[0]>$a[1] Then
                        msgbox(4096,0,"第三次称重,结果为1重")
                Elseif  $a[0]<$a[1] Then
                        msgbox(4096,0,"第三次称重,结果为2重")
                Else
                        msgbox(4096,0,"第三次称重,结果为7轻")
                EndIf
        ElseIf $a[0]+$a[1]+$a[4]+$a[5]<$a[2]+$a[6]+$a[8]+$a[9] Then
                msgbox(4096,0,"第二次右重")
                if $a[4]>$a[5] Then
                        msgbox(4096,0,"第三次称重,结果为6轻")
                Elseif  $a[4]<$a[5] Then
                        msgbox(4096,0,"第三次称重,结果为5轻")
                Else
                        msgbox(4096,0,"第三次称重,结果为3重")
                EndIf
        Else
                msgbox(4096,0,"第二次同重")
                if $a[3]>$a[8] Then
                        msgbox(4096,0,"第三次称重,结果为4重")
                Else
                        msgbox(4096,0,"第三次称重,结果为8轻")
                EndIf
        EndIf
ElseIf Execute(_ArrayToString($a,"+",0,3))<Execute(_ArrayToString($a,"+",4,7)) Then
        msgbox(4096,0,"第一次右重")
        if $a[0]+$a[1]+$a[4]+$a[5]>$a[2]+$a[6]+$a[8]+$a[9] Then
                msgbox(4096,0,"第二次左重")
                if $a[4]>$a[5] Then
                        msgbox(4096,0,"第三次称重,结果为5重")
                Elseif  $a[4]<$a[5] Then
                        msgbox(4096,0,"第三次称重,结果为6重")
                Else
                        msgbox(4096,0,"第三次称重,结果为3轻")
                EndIf
        ElseIf $a[0]+$a[1]+$a[4]+$a[5]<$a[2]+$a[6]+$a[8]+$a[9] Then
                msgbox(4096,0,"第二次右重")
                if $a[0]>$a[1] Then
                        msgbox(4096,0,"第三次称重,结果为2轻")
                Elseif  $a[0]<$a[1] Then
                        msgbox(4096,0,"第三次称重,结果为1轻")
                Else
                        msgbox(4096,0,"第三次称重,结果为7重")
                EndIf        
        Else
                msgbox(4096,0,"第二次相等")
                if $a[3]<$a[8] Then
                        msgbox(4096,0,"第三次称重,结果为4轻")
                Else
                        msgbox(4096,0,"第三次称重,结果为8重")
                EndIf
        EndIf
Else 
        msgbox(4096,0,"第一次相等")
        if Execute(_ArrayToString($a,"+",8,10))>Execute(_ArrayToString($a,"+",0,2)) Then
                msgbox(4096,0,"第二次右重")
                if $a[8]>$a[9] Then
                        msgbox(4096,0,"第三次称重,结果为9重")
                ElseIf $a[8]<$a[9] Then
                        msgbox(4096,0,"第三次称重,结果为10重")
                Else
                        msgbox(4096,0,"第三次称重,结果为11重")
                EndIf
        ElseIf Execute(_ArrayToString($a,"+",8,10))<Execute(_ArrayToString($a,"+",0,2)) Then
                msgbox(4096,0,"第二次左重")
                if $a[8]>$a[9] Then
                        msgbox(4096,0,"第三次称重,结果为10轻")
                ElseIf $a[8]<$a[9] Then
                        msgbox(4096,0,"第三次称重,结果为9轻")
                Else
                        msgbox(4096,0,"第三次称重,结果为11轻")
                EndIf
        Else
                msgbox(4096,0,"第二次相等")
                if $a[0]>$a[11] Then
                        msgbox(4096,0,"第三次称重,结果为12轻")
                ElseIf $a[0]<$a[11] Then
                        msgbox(4096,0,"第三次称重,结果为12重")
                Else
                        msgbox(262144+64,0,"你不是在玩我吧,12个球一样重噢!")
                EndIf
        EndIf
EndIf

评分

参与人数 1金钱 +30 收起 理由
魔导 + 30 元老就是元老~

查看全部评分

发表于 2012-10-30 10:13:00 | 显示全部楼层
将12个分成3份,每份4个,分别为A份,B份,C份,首先任意取出两份进行比较一次,例如取出了A 和B 进行比较,假如A = B 则得知 那个异常球在C 里,然后将A或B 和 C 平均分成2份a1,a2,c1,c2
,分好后假如拿a1和c1进行比较,若相等则异常球在c2,反之在c1,那么再假如异常球在c1,再将c1和c2分两份为c11,c12,c21,c22,去c2里的其中一份和c1的其中一份进行比较,那么结果便得知。
发表于 2012-10-30 15:31:23 | 显示全部楼层
不知道怎样
发表于 2012-10-30 21:44:41 | 显示全部楼层
呵呵,知道怎么称,就是不会写代码,囧!
发表于 2012-11-1 08:17:02 | 显示全部楼层
回复下 看看数学题
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-25 20:32 , Processed in 0.090467 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表