日志 - 日历
2008 8.21 Thu
     12
3456789
10111213141516
17181920212223
24252627282930
31      
<> 2008 - 8 <>
搜索BLOG文章

看看你的文章有没有被百度收入

博客基本信息
用户名: lostCity
等级: 学士
在线时间: 6131 分钟
日志总数: 468
评论数量: 363
访问次数: 469885
建立时间: 2005-12-24
最新访问
100076983

XML RSS 2.0 WAP
我的日志
智力题:3个5和1个1的四则运算如何使其结果为242007-10-17
# 智力题:3个5和1个1的四则运算如何使其结果为24
# 下面是tcl简单解决办法。没有玩过的不妨想想,然后再看程序实现。
#
set vlist "5.00 5.00 5.00 1.00"
set func "+ - * /"
set result 24
set possNo 0
set findout 0
# a b c d = 24 = 5*(5-1/5)
for {set i 0} {$i<4} {incr i} {
    for {set j 0} {$j<4} {incr j} {
        if {$i==$j} {continue}
        for {set k 0} {$k<4} {incr k} {
            if {$i==$k||$j==$k} {continue}
            for {set l 0} {$l<4} {incr l} {
                if {$i==$l||$j==$l||$k==$l} {continue}
                set a [lindex $vlist $i]
                set b [lindex $vlist $j]
                set c [lindex $vlist $k]
                set d [lindex $vlist $l]
                foreach f1 $func {
                    foreach f2 $func {
                        foreach f3 $func {
                            set expl ""
                            # 0
                            lappend  expl "$a $f1 $b $f2 $c $f3 $d"
                            # 1
                            lappend  expl "($a $f1 $b) $f2 $c $f3 $d"
                            lappend  expl "($a $f1 $b $f2 $c) $f3 $d"
                            lappend  expl "$a $f1 ($b $f2 $c) $f3 $d"
                            lappend  expl "$a $f1 ($b $f2 $c $f3 $d)"
                            lappend  expl "$a $f1 $b $f2 ($c $f3 $d)"
                            # 2
                            lappend  expl "($a $f1 $b) $f2 ($c $f3 $d)"
                            foreach exp $expl {
                                if {$findout} {break}
                                set exp [join $exp ""]
                                incr possNo
                                if {[catch {
                                    if {[expr abs($exp-$result)]<=0.0001} {
                                        puts "$possNo: $exp = [expr 1.00*$exp]"
                                        set findout 1
                                        break
                                     } 
                                } ierr]} {
                                }
                            }
                            if {$findout} {break}
                        }
                        if {$findout} {break}
                    }
                    if {$findout} {break}
                }
                if {$findout} {break}
            }  
            if {$findout} {break}
        }  
        if {$findout} {break}
    }  
    if {$findout} {break}
}

原创文章如转载,请注明:转载自lostCity [ http://lostCity.blog.zj.com/ ]
本文链接地址:http://lostCity.blog.zj.com/blog/d-161502.html

TAG: TCL
相关文章
文章评论3条回复
[guest] 评论于
评分:-5
[jerry] 评论于
完整地看了你的博克,实在难得的专业和耐心!受益匪浅。
请教一下ifix6.1是否具有OPCSERVER发布数据的配置?如果没有,怎样才能取到点的数据呢?而不是让fix 通过odbc去写数据库。
我的mail:datavision@163.com   谢谢!

这个算24的经典问题我在8岁时知道的,一直炫耀到现在!有趣,我用java作点东西,可以经常交流。
[天香] 评论于
好久没见你上来了...


给文章评分
评分: -5 -3 -1 - +1 +3 +5
我来说两句
认证码*   看不清,就点我! 输入四位字母或数字
(您还没有登录,登录发表)
粗体 斜体 下划线 插入url链接 飞行字 移动字