-7

我在一些脑筋急转弯问题库中遇到了这个问题。

What should be the answer of this?
( (3+1) / 3) * 6

I thought it is 7 but the correct answer is 8. 

只有当它是 (3+1) * (6/3) 时才会发生这种情况。既然表达式中有括号,我怎么能得到 8?我试图仔细检查,答案是正确的。

有人可以帮助我理解这一点吗?

4

3 回答 3

5

使用整数:

  ((3 + 1) / 3) * 6 
= (4 / 3) * 6 
= 1 * 6 
= 6

使用浮点数:

  ((3 + 1) / 3) * 6 
= (4 / 3) * 6
= (4 / 3) * (6 / 1)

作为分数

= (6 * 4) / (3 * 1) 
= 24 / 3 
= 8
于 2013-03-05T17:44:09.677 回答
4

这只是简单的算术 - 与编程无关,也与中缀、前缀和后缀符号之间的区别无关:

((3+1) / 3) * 6 = (4 / 3) * 6
                = 1.333... * 6
                = 8

这个脑筋急转弯题库显然希望您使用通常的数学规则 - 毕竟它不是 C 脑筋急转弯题库。即使您改用整数除法(where4 / 3会给出1),答案也会是 6。

在 Wolfram Alpha 上查看结果。

于 2013-03-05T17:42:52.583 回答
1

听上去,这是基本的算术,与编程没有任何关系:

(3 + 1) / 3 * 6 = 
4 / 3 * 6 =
(4 * 6) / 3 =
24 / 3 =
8
于 2013-03-05T17:43:26.070 回答