我在一些脑筋急转弯问题库中遇到了这个问题。
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?我试图仔细检查,答案是正确的。
有人可以帮助我理解这一点吗?
我在一些脑筋急转弯问题库中遇到了这个问题。
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?我试图仔细检查,答案是正确的。
有人可以帮助我理解这一点吗?
使用整数:
((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
这只是简单的算术 - 与编程无关,也与中缀、前缀和后缀符号之间的区别无关:
((3+1) / 3) * 6 = (4 / 3) * 6
= 1.333... * 6
= 8
这个脑筋急转弯题库显然希望您使用通常的数学规则 - 毕竟它不是 C 脑筋急转弯题库。即使您改用整数除法(where4 / 3
会给出1
),答案也会是 6。
在 Wolfram Alpha 上查看结果。
听上去,这是基本的算术,与编程没有任何关系:
(3 + 1) / 3 * 6 =
4 / 3 * 6 =
(4 * 6) / 3 =
24 / 3 =
8