Consider the following C program: int fun(int n) { int localVar; if (n != 0) return n fun(n-1); else return n; } int main() { int input, output; cout << "Enter an input: "; cin >> input; output = fun(input); cout << "output is " << output << endl; return 0; } 1. Briefly explain what the above example code computes. (5 points) 2. Draw an activation record instance from the above code if static scoping is used and user input is 4. Once you draw an activation record instance, show this activation record can be used to reach a solution. (5 points) 3. Rewrite the above code without using recursion and draw its activation record instance if the user input is 4. (10 points) 4. What can you expect a run-time difference between the two versions (given and from question 3) of codes