Math 中缀前缀后缀

Math 中缀前缀后缀,math,Math,我在一些脑筋急转弯的问题库中遇到了这个问题 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

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

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.333... * 6
                = 8
这个脑筋急转弯题库显然希望你使用数学的一般规则——它毕竟不是一个C脑筋急转弯题库。即使您使用整数除法(其中
4/3
将给出
1
),答案也是6


参见。

听上去,这是基本的算术,与编程无关:

(3 + 1) / 3 * 6 = 
4 / 3 * 6 =
(4 * 6) / 3 =
24 / 3 =
8
使用整数:

  ((3 + 1) / 3) * 6 
= (4 / 3) * 6 
= 1 * 6 
= 6
使用浮动:

  ((3 + 1) / 3) * 6 
= (4 / 3) * 6
= (4 / 3) * (6 / 1)
作为:


这是什么脑筋急转弯题库?这是基本的操作顺序。当你得到7的时候,你是在假设整数除法(去掉余数)?这是我能想到的答案的唯一原因。@iamnotmaynard即使你放弃剩下的,你也会得到6.“脑筋急转弯”?哦,天哪。请告诉我你是怎么得到7的。我相信我们的朋友会欢迎这个问题;)您将忽略一对括号,并按照原始等式中的指定更改操作顺序。虽然在这种情况下,这不会对最终结果产生影响,但您应该避免这样做,或者至少要明确说明这一点。+1表示整数division@Kirilenko:像
3
1
6
这样的数字不是整数吗。你能解释一下乘法的优先级是如何超过括号的吗?@cipher:我假设C语言定义的是“整数”。这就是当我写下答案时问题被标记的方式。
= (6 * 4) / (3 * 1) 
= 24 / 3 
= 8