Can explain how this function works?
#include <stdio.h>
int a(int n);
int main(void) {
printf("%d\n", a(4));
return 0;
}
int a(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return a( a(n-1) ) + a( n-a(n-1) );
}
}
1
Expert's answer
2017-07-27T15:51:06-0400
"a" function - is a recursive function, each recursive call from return will call for additional four calls of "a" function. It would be continued till n will not reach to the 2 and base case return will turn the result. Time of the execution is polynomial. Result of execution would be 2, despite of amount of recursive calls part "a(a(n-1))" would return 1 and "a(n-a(n-1))" also return 1, in addition function return 2.
Numbers and figures are an essential part of our world, necessary for almost everything we do every day. As important…
APPROVED BY CLIENTS
Finding a professional expert in "partial differential equations" in the advanced level is difficult.
You can find this expert in "Assignmentexpert.com" with confidence.
Exceptional experts! I appreciate your help. God bless you!
Comments
Leave a comment