免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: xinyv
打印 上一主题 下一主题

Tim 这有一个题,看你用shell能解出来不。 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-02-05 15:13 |只看该作者
应该允许吧,但这样好像不满足题意。

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
12 [报告]
发表于 2009-02-05 15:25 |只看该作者

回复 #11 xinyv 的帖子

恩,如果有重复的,第一轮就会有结果了。
让我在琢磨琢磨。

论坛徽章:
0
13 [报告]
发表于 2009-02-05 19:33 |只看该作者
24和120~
shell 就不会了

[ 本帖最后由 is.x 于 2009-2-5 19:35 编辑 ]

论坛徽章:
0
14 [报告]
发表于 2009-02-06 10:30 |只看该作者
网上说有多种结果,可是我就算出来2中,剩下的大家在考虑吧,贴我的代码供大家参考。
我这个方法不能算是纯程序计算,很多逻辑上的东西在程序里没有想出方法来判断,表示。

  1. #!/bin/bash
  2. :<<'EOF'
  3. # 说一下我的思路,大家参考
  4. # 假设 三个人和数分别是 A(a)  B(b) C(c)  大写字母代表人,小写字母代表数字。
  5. #
  6. # 1、根据题意  得出 a!=b a!=c b!=c
  7. #      因为 a=b or a=c or b=c 任一为真的时候,在前三次就可以得到结果,不符合题意。
  8. # 2、根据题意 得出 a!=2b a!=2c b!=2a b!=2c c!=2a c!=2b
  9. #      因为 上述条件任一为真的时候 在第五次之前就可以得到结果,不符合题意。
  10. # 3、第六次能得到答案是因为某一个条件不能满足上面的条件之一。
  11. #
  12. # A 用户可能结果  ((b+c)  b  c)    (Abs(b-c)  b  c)
  13. #  
  14. # B 用户可能结果  (a  (a+c)  c)    (a  Abs(a-c)  c)
  15. #  
  16. # C 用户可能结果  (a  b  (a+b))    (a  b  Abs(a-b))
  17. #
  18. # 因第六次出了结果,所以 (a+b) or Abs(a-b) 必然有一个且只有一个不符合条件二,故在第六次可以判断,否则在第六次无法判断结果
  19. # 而且凡是有数字 c 的加减法 均必须满足条件 1 2
  20. #
  21. # 假设 (a  b  Abs(a-b)) 满足条件 那么 (a+b) 必然不满足条件 ,因此 a b 必须满足条件 1 2 而 a+b 必须不满足条件 2
  22. #
  23. # 前提 a b 必须满足条件 1 2
  24. # a!=b a!=2b b!=2a c=(a+b)
  25. # 根据上面的条件可以得到
  26. # c=(a+b) --> a!=c b!=c a!=2c b!=2c
  27. # a!=b    --> c!=2a c!=2b
  28. #
  29. # 因为假设中 (a+b) 完全符合条件 1 2 故假设不成立。
  30. # 因此我们得到 a+b=144
  31. EOF
  32. function Abs(){
  33.    (( $[$@] > 0 )) && { echo $@;return; }
  34.    echo $[0-($@)]
  35. }
  36. for i in {1..143};do
  37. a=$i;b=$[144-$i];c=$(Abs a-b)
  38. if (( $a != $b )) && (( $[2*$a] != b )) && (( $[2*$b] != $a ));then
  39.    if (( $a != $c )) && (( $b != $c ));then
  40.         if (( $a == $[2*$c] ));then
  41.                 echo "A=$a B=$b C=144"
  42.                 continue 1;
  43.         elif (( $b == $[2*$c] ));then
  44.                 echo "A=$a B=$b C=144"
  45.                 continue 1;
  46.         elif (( $c == $[2*$a] ));then
  47.                 echo "A=$a B=$b C=144"
  48.                 continue 1;
  49.         elif (( $c == $[2*$b] ));then
  50.                 echo "A=$a B=$b C=144"
  51.                 continue 1;
  52.         fi
  53.    fi
  54. fi
  55. done
复制代码

A=36 B=108 C=144
A=108 B=36 C=144

且 A B 的关系为  (A:B ==1:3)  A=3X B=X   X为任意正整数。

A 和 B 的顺序可以互换
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP