GATE 2025 CS (CS1) – Question 61
#include <stdio.h>
int foo(int S[],int size){
if(size == 0) return 0;
if(size == 1) return 1;
if(S[0] != S[1]) return 1+foo(S+1,size-1);
return foo(S+1,size-1);
}
int main(){
int A[]={0,1,2,2,2,0,0,1,1};
printf("%d",foo(A,9));
return 0;
}The value printed by the given C program is _______ . (Answer in integer)
Practise this question in The GATE Grind →
Show answer and explanation
Correct answer: 5
Explanation
foo counts adjacent unequal pairs and adds 1 for the base case. In 0,1,2,2,2,0,0,1,1 the unequal adjacent pairs are 0-1, 1-2, 2-0 and 0-1 (4 in all), so the result is 4+1 = 5.