Viral Math Problems: 6 / 2 * (1 + 2)
How do computers solve - 6 / 2 * (1 + 2) ?
The answer is 9.
Code & Repo for current solutions
C answer - 9
code:
#include "stdio.h"
int main() {
int a = 6 / 2 * ( 1 + 2);
printf("C answer - %d\n", a);
return 0;
}
Golang answer - 9
code:
package main
import "fmt"
func main() {
a := 6 / 2 * (1 + 2)
fmt.Printf("Golang answer - %d\n", a)
}
Node.JS answer - 9
code:
const a = 6 / 2 * (1 + 2)
console.log(`Node.JS answer - ${a}`)
Deno answer - 9
code:
const a = 6 / 2 * (1 + 2)
console.log(`Deno answer - ${a}`)
Python2 answer - 9
code:
a = 6 / 2 * ( 1 + 2)
print("Python2 answer - " + str(a))
Python3 answer - 9.0
code:
a = 6 / 2 * ( 1 + 2 )
print("Python3 answer - " + str(a))
Ruby answer - 9
code:
a = 6 / 2 * (1 + 2)
puts "Ruby answer - #{a}"
Top comments (5)
I don't see the point of this. The whole problem was with the interpretation of A / B (C), if one should prioritize (B*C) or not. The way you wrote it, there was never any doubt that the result is 9.
I understand where you are coming from, but at the same time I am expressing that there is no interpretation of that priority.
Based on the order of operations, once we have the 6 / 2 (3), this translates to 6 / 2 * 3 (removing the parens), and thus the Order of Operations states we evaluate left to right. Within those rules, there is only 1 correct interpretation.
So I just googled to better understand my reasoning and came across this video with a good explaination. It talks about the historical references to treating the division symbol as 6 / ( 2 * 3) as some people are evaluating. But that interpretation is historical and stems off a different way of evaluation not common today (or at least the video states).
If operand has same precedence it is calculated from left to right.
6/2*3 = 3*3 =9..
Cool!
woow