我在一些脑筋急转弯问题库中遇到过这个问题。
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?我试着仔细检查,答案是正确的。
有人可以帮我理解这个吗?
答案 0 :(得分:5)
使用整数:
((3 + 1) / 3) * 6
= (4 / 3) * 6
= 1 * 6
= 6
使用花车:
((3 + 1) / 3) * 6
= (4 / 3) * 6
= (4 / 3) * (6 / 1)
作为fraction:
= (6 * 4) / (3 * 1)
= 24 / 3
= 8
答案 1 :(得分:4)
这只是简单的算术 - 与编程无关,也没有中缀,前缀和后缀符号之间的区别:
((3+1) / 3) * 6 = (4 / 3) * 6
= 1.333... * 6
= 8
这个脑筋急转弯问题库显然希望你使用通常的数学规则 - 毕竟它不是C脑筋急转弯问题库。即使你使用整数除法(4 / 3
会给1
),答案也是6。
答案 2 :(得分:1)
听起来,这是基本的算术,与编程没有任何关系:
(3 + 1) / 3 * 6 =
4 / 3 * 6 =
(4 * 6) / 3 =
24 / 3 =
8