阅读:1893回复:18
另一道微软面试题
用3,3,8,8四个数字和+,-,*,/,(,)六种符号,得出11的结果。
|
|
|
沙发#
发布于:2002-01-16 12:35
以下代码虽然很弱智,但我觉得差不多包括所有情况了吧?
结果是没有!! 大家看看漏了什么情况?? //3,3,8,8算出11 void CSuanshuDlg::OnBnCalc() { //首先用3和3进行计算,得到数再和8和8计算(调用三个数的计算) Calc3(3.0+3.0, 8.0, 8.0); Calc3(3.0-3.0, 8.0, 8.0); Calc3(3.0*3.0, 8.0, 8.0); Calc3(3.0/3.0, 8.0, 8.0); //然后用3和8进行计算,得到数再和3和8计算(调用三个数的计算) Calc3(3.0+8.0, 3.0, 8.0); Calc3(3.0-8.0, 3.0, 8.0); Calc3(8.0-3.0, 3.0, 8.0); Calc3(3.0*8.0, 3.0, 8.0); Calc3(3.0/8.0, 3.0, 8.0); Calc3(8.0/3.0, 3.0, 8.0); AfxMessageBox(\"没有!\"); } //计算三个数的各种组合 double CSuanshuDlg::Calc3(double a1, double a2, double a3) { //首先用a1和a2进行计算,得到数再和a3计算 Calc2(a1+a2, a3); Calc2(a1-a2, a3); Calc2(a2-a1, a3); Calc2(a1*a2, a3); if (a2 != 0.0) Calc2(a1/a2, a3); if (a1 != 0.0) Calc2(a2/a1, a3); //然后用a1和a3进行计算,得到数再和a2计算 Calc2(a1+a3, a2); Calc2(a1-a3, a2); Calc2(a3-a1, a2); Calc2(a1*a3, a2); if (a3 != 0.0) Calc2(a1/a3, a2); if (a1 != 0.0) Calc2(a3/a1, a2); //最后用a2和a3进行计算,得到数再和a1计算 Calc2(a2+a3, a1); Calc2(a2-a3, a1); Calc2(a3-a2, a1); Calc2(a2*a3, a1); if (a3 != 0.0) Calc2(a2/a3, a1); if (a2 != 0.0) Calc2(a3/a2, a1); return 0.0; } //计算两个数的各种组合 double CSuanshuDlg::Calc2(double a1, double a2) { double a, b, c, d=0.0, e=0.0; //+ - * / a=a1+a2; b=a1-a2; c=a1*a2; if (a2 != 0.0) d=a1/a2; if (a1 != 0.0) e=a2/a1; if ((fabs(fabs(a)-11.0) < 0.0001) || (fabs(fabs(b)-11.0) < 0.0001) || (fabs(fabs(c)-11.0) < 0.001) || (fabs(fabs(d)-11.0) < 0.001) || (fabs(fabs(e)-11.0) < 0.001) ) AfxMessageBox(\"成功了!\"); return 0.0; } |
|
|
板凳#
发布于:2002-01-16 12:38
把11.0改成24.0就有结果
快点儿告诉我答案吧! 还能算出来以下。。。。 0 1 2 3 4 5 6 7 8 9 10 12 13 15 16 17 19 21 22 23 24 25 27 29 32 35 37 39 40 41 43 45 48 51 55 56 57 58 63 64 70 72 73 80 85 91 96 112 120 121 136 144 168 183 189 195 201 216 264 384 576 [编辑 - 1/16/02 作者: Over] |
|
|
地板#
发布于:2002-01-16 12:44
提示:符号的使用不限量 :D
|
|
|
地下室#
发布于:2002-01-16 13:02
符号已经重复使用了,这个提示不对
我想应该是进制的问题!!! (3+8/8)3 这个3是三进制的意思!! 微软这个白痴! |
|
|
5楼#
发布于:2002-01-16 16:31
(8+8-3-3)++
:D :D :D |
|
|
6楼#
发布于:2002-01-16 20:33
原题是:
“用3,3,8,8四个数字和+,-,*,/,(,)六种符号,得出11的结果。” 注意:即使在C++中,++也是和+,-,*,/,(,)不同的另外一个符号!!连优先级都不一样!! 这不能不说是偷换概念!! 不过也算你对:) |
|
|
7楼#
发布于:2002-01-17 07:29
sorry,这是我的答案,也可能是错的 :D
|
|
|
8楼#
发布于:2002-01-17 08:37
so easy!
看图 |
|
|
9楼#
发布于:2002-01-17 09:36
玩过速算24吗?知道x的y次方属于什么运算吗?那叫乘方运算,和+,-,*,/,(,)不一样的!!
不过也算你对:) |
|
|
10楼#
发布于:2002-01-17 18:21
sorry,这是我的答案,也可能是错的 :D 如果用C语言,那么就更容易了。 8+3+3/8 因为是整数运算, 所以 3/8=0。 11就轻易到手了。 |
|
|
11楼#
发布于:2007-05-15 17:53
用户被禁言,该主题自动屏蔽! |
|
12楼#
发布于:2007-05-16 09:52
出题的够白痴,答题的却以为是考官是个天才。。。。。
这就是求职的悲哀啊 |
|
|
13楼#
发布于:2007-05-20 00:36
不知道我的算不算正确呢
3 3 - 8 -8 = 11 |
|
14楼#
发布于:2007-05-20 00:37
康夫,好久不见你啦
是不是已经当 夫和父了啊? |
|
15楼#
发布于:2007-06-14 17:58
今天好惊奇,本来想看看有什么搞笑的帖子(我也只能这样了,因为我已不做驱动好多年了。现在改做Bluetooth了),却发现了我许久之前的帖子,泪..........................。想当年开始做驱动的时候,从这里开始起步,不禁感叹岁月的蹉跎。
如今已是30好几的人,再次泪...................... 兄弟,你可安好? 引用第14楼管理员于2007-05-20 00:37发表的 : |
|
|
16楼#
发布于:2007-06-15 10:40
唉,一样啊,
|
|
17楼#
发布于:2007-06-18 16:40
都是不做老大好多年了
|
|
|
18楼#
发布于:2007-06-19 09:36
F,30如狼40如虎,咋都这么就蔫了。。。。也是,混得好的估摸都是小领导了,不能灌水给人看了
|
|
|