Question:medium

Consider the following ANSI C function: 

int SimpleFunction(int Y[], int n, int x) 
{ 
	int total = Y[0], loopIndex; 
	for (loopIndex = 1; loopIndex <= n - 1; loopIndex++) 
		total = x * total + Y[loopIndex]; 
	return total; 
}

Let \( Z \) be an array of 10 elements with \( Z[i] = 1 \), for all \( i \) such that \( 0 \le i \le 9 \). The value returned by SimpleFunction(\( Z, 10, 2 \)) is \(\underline{\hspace{2cm}}\).

Show Hint

Such loops often form a geometric progression when the update is of the form \( \text{total} = a \times \text{total} + b \).
Updated On: Jan 30, 2026
Show Solution

Correct Answer: 1023

Solution and Explanation

Step 1: Initialization.
The variable total is initialized using the first element of the array: \[ \text{total} = Y[0] = 1 \]

Step 2: Loop execution.
The loop runs from loopIndex = 1 to 9, which means it executes exactly 9 times.

Step 3: Update rule.
In each iteration, total is updated as: \[ \text{total} = 2 \times \text{total} + 1 \] This is a recurrence relation of the form: \[ T_{k} = 2T_{k-1} + 1 \] with initial value \( T_0 = 1 \).

Step 4: Generated sequence.
Applying the recurrence repeatedly gives: \[ 1,\; 3,\; 7,\; 15,\; 31,\; 63,\; 127,\; 255,\; 511,\; 1023 \]

Step 5: Final value.
After completing all 9 iterations, the value stored in total is: \[ 1023 \]

Final Answer:
\[ \boxed{1023} \]

Was this answer helpful?
0