You are teaching beginners A, B, C at your company.
Accenture technical mcq question, verified with a worked answer. Free to practise - no sign-up.
You are teaching beginners A, B, C at your company. The beginners wrote the following functions. These functions receive an array of integers a and outputs the sum of all elements in array a.
Choose all functions that work properly. At least 1 function works properly.
Beginner A
function sum(a) {
let answer = 0;
for (let i = 0; i < a.length; i++) {
answer += a[i];
}
return answer;
}
Beginner B
function sum(a) {
let answer = 0;
for (let i = a.length; i > 0; i--) {
answer += a[i];
}
return answer;
}
Beginner C
function sum3(a) {
let answer = 0;
let i = 0;
while (i) {
if (i == a.length) {
break;
}
answer += a[i];
i++;
}
return answer;
}
Show answer & explanation
Beginner A's function correctly iterates through the array from index 0 to length-1 and sums all elements. Beginner B has an off-by-one error: the loop starts at i = a.length and accesses a[i], which is out of bounds (arrays are 0-indexed). Beginner C's loop never executes because i is initialized to 0, and while (i) evaluates to while (0) which is false.
Step-by-step Derivation:
Trace execution for array [1, 2, 3]:
Beginner A: i=0 (answer=1), i=1 (answer=3), i=2 (answer=6), returns 6 ✓
Beginner B: i=3 (a[3] undefined), i=2 (a[2]=3, answer=3), i=1 (a[1]=2, answer=5), i=0 (a[0]=1, answer=6), but a[3] is undefined and NaN propagates ✗
Beginner C: while (i=0) is false, loop never runs, returns 0 ✗