C program Write a program recursive c that takes as input an

C program

Write a program recursive. c that takes as input an integer n and evaluates the function f(n) = {0 n = 0, f(|n| - 1) + 6 if n notequalto 0 is even, f(|n| - 1) - 5 if n is odd. The program prompts the user for a value until they wish to stop. It should use the recursive function int evaluate (int) that takes an integer .v and returns f(x). (-) $ a.out Integer: 5 f(5) = -3 Continue [y/n]? y Integer: 6 f(6) = 3 Continue [y/n]? y Integer: 3 f(3) = -4 Continue [y/n]? y Integer: -2 f(-2) = 1 Continue [y/n]?n

Solution

Please find the required program along with its output. Please see the comments against each line to understand the step.

#include <stdio.h>
#include <stdlib.h>


int f(int n){

if(n==0)
return 0;
else if(n%2 == 0) {
return (f(abs(n) - 1) + 6); //abs fndtion will return the positive value
} else if(n%2 == 1) {
return (f(abs(n) - 1) - 5);
}
}

int main(void) {

int n;
char c;
while(1){ //infinite loop
printf(\"\ Integer:\");
scanf(\"%d\",&n); //read the integer
printf(\"f(%d) = %d\",n,f(n)); //print the result by calling recursive function
  
printf(\"\ Continue[y/n]:\"); //get user input whether he needs to continue
scanf(\"%s\",&c);
  
if(c==\'n\') //if user enter n (for not to continue) then break from the loop
break;
  
}
return 0;
}

--------------------------------------

OUTPUT:

C program Write a program recursive. c that takes as input an integer n and evaluates the function f(n) = {0 n = 0, f(|n| - 1) + 6 if n notequalto 0 is even, f(

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site