Consider the following C code snippets, labeled as P1, P2 and P3, the output of P1 is “X”, of P2 is “Y” and of P3 as “Z”. What is the value of “X+Y+Z”
P1
#include <stdio.h>
int f(int n)
{
static int r=40;
if (n==0 || n==1) return 0;
if (n%2==0)
{
r=r-4;
return f(n-1)-r;
}
else return f(n-1)+(2*r);
}
int main()
{
printf("%d",f(6));
return 0;
}
P2
#include <stdio.h>
int f(int n)
{
int r=40;
if (n==0 || n==1) return 0;
if (n%2==0)
{
r=r-4;
return f(n-1)-r;
}
else return f(n-1)+(2*r);
}
int main()
{
printf("%d",f(6));
return 0;
}
P3
#include <stdio.h>
int f(int n,int r)
{
if (n==0 || n==1) return 0;
if (n%2==0)
{
r=r-4;
return f(n-1,r)-r;
}
else return f(n-1,r)+(2*r);
}
int main()
{
printf("%d",f(6,40));
return 0;
}