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.
"assignmentexpert.com" is professional group of people in Math subjects! They did assignments in very high level of mathematical modelling in the best quality. Thanks a lot
Comments