Question

Below is C code and Python code for an algorithm.

**C code:**

void foo( int n, int A, int B, int C ) {

if( n==1 ) {

printf("%d to %d\n",A,B);

return;

}

foo( n-1, A, C, B );

printf("%d to %d\n",A,B);

foo( n-1, B, C, A );

**Python code:**

def foo(n , A, B, C):

if n==1:

print A, "to", B

return

foo(n-1, A, C, B)

print A, "to", B

foo(n-1, B, C, A)

Let Hn be the number of times the printing function is executed. Assume n ≥ 1. Give a recurrence equation and an initial value for Hn and solve it. Note, you do not need to know what the code is doing to answer this question.

Answer #1

Here the function foo() is called twice and length of array is decreased by 1 in each case.

If originally time required when size of array was n was T(n) , then time required when size of becomes n-1 is T(n-1).

Also when n==1, we print a single statement which takes a constant amount of time 1.

Also there is a print statement between the two function call.

So total amount of extra time is 2 which is again constant.

So the recurrence relation is :

T(n) = 2T(n-1) +2

Where T(1) =1.

If you have any questions comment down. Please don't simply downvote and leave. If you are satisfied with answer, please? upvote thanks

I am experimenting with pointers in C. I wrote this code.
int i1;
int i2 = 50;
int *intptr1;
int *intptr2;
intptr1 = &i1;
intptr2 = &i2;
intptr1 = intptr2;
printf("\nvalue of intptr1: %d\n", *intptr1); /*prints 50*/
dubptr1 = (double *)intptr1;
printf("\nvalue of dubptr1: %f\n", *dubptr1); /*prints 0.0000*/
I would have expected the last statement to print 50.0000. Is it
actually supposed to print 0.0000 or did I make a mistake somewhere
and if I did please help me understand...

a. Design a non-recursive algorithm for computing an (discussed
in the class). What is the basic operation? How many times is the
algorithm’s basic operation executed? b. Using an = a*an-1
(discussed in the class) to design a recursive algorithm for
computing an . What is the basic operation? Set up and solve a
recurrence relation for the number of times that algorithm's basic
operation is executed. c. Using an = a*(a(n-1)/2) 2 (n is odd
integer) and an =...

C PROGRAMMING LANGUAGE
The following code written in C programming language was run and
displays 997705320. Explain why and how this program outputs this
number.
int main(void) {
int a = 5, b =20;
int* ptr = &a;
int** ptr2 = &ptr;
printf("%d\n", ((int)*ptr * (int)*ptr2));
return 0;
}

Generate test cases for the following code by using Basic Path
Testing.
void sort(int a[ ],int N)
{ int i,j,p,t;
for(i=0;i<N-1;i++)
{ p=i;
for(j=i+1;j<N;j++)
if(a[j]>a[p])
p=j;
if(p!=i)
{ t=a[p]; a[p]=a[i]; a[i]=t; }
}
}
a) Draw CFG.
b) How many basic paths
for the CFG?
c) List the basic
paths.
d) Generate test cases
from it.

convert this code to accept int value instead of float values
using python. Make sure to follow the same code.
do not change the steps and make sure to point to what code you
replaced. make sure to have 2 files
Method:-----------------------
#define a python user difined method
def get_float_val (prompt):
is_num = False
str_val = input (prompt) #prming read for our while
#while is_num == False: (ignore this but it works) old
school
while not is_num:
try:
value =...

For the following code in C, I want a function that can find
"america" from the char array, and print "america is on the list"
else "america is not on the list" (Is case sensitive). I also want
a function to free the memory at the end of the program.
#include <stdio.h>
#include <stdlib.h>
struct Node {
void *data;
struct Node *next;
};
struct List {
struct Node *head;
};
static inline void initialize(struct List *list)
{
list->head = 0;...

Explain this code function by function in
detail
int menu()
{
int choice;
do {
system("cls");
printf("1-Insurence Plan
Subscription\n");
printf("2-Claim Processing\n");
printf("3-Accounts Information\n");
printf("4-Searching
Functionalities\n");
printf("5-Exit\n");
scanf("%d", &choice);
} while (choice > 5 || choice < 1);
return choice;
void subscribe()
system("cls");
victims[userCount].id = userCount + 1;
printf("Enter age: ");
scanf("%d", &victims[userCount].age);
printf("\n\n%-25sHealth Insurence Plan\n\n", "
");
printf("-----------------------------------------------------------------------------------------------\n");
printf("|%-30s|%-20s|%-20s|%-20s|\n", " ", "Plan
120(RM)", "Plan 150(RM)", "Plan 200(RM)");
printf("-----------------------------------------------------------------------------------------------\n");
printf("|%-30s|%-20d|%-20d|%-20d|\n", "Monthly
Premium", 120, 150, 200);
printf("|%-30s|%-20d|%-20d|%-20d|\n", "Annual Claim
Limit", 120000,150000,200000);
printf("|%-30s|%-20d|%-20d|%-20d|\n",...

In C can you change this code to use Tail Call Recursion
int min (int n, int[] input)
{
int i;
int result;
for (result = input[0], i = 0; i < n; i += 1)
{
if (result > input[i]) result = input[i];
}
return result;
}

Consider the following recursive algorithm. Algorithm Test
(T[0..n − 1]) //Input: An array T[0..n − 1] of real numbers if n =
1 return T[0] else temp ← Test (T[0..n − 2]) if temp ≥ T[n − 1]
return temp else return T[n − 1] a. What does this algorithm
compute? b. Set up a recurrence relation for the algorithm’s basic
operation count and solve it.

Design flow chart on software not handwritten.
void claimProcess()
{
int id;
bool found = false;
system("cls");
printf("Enter user ID for which you want to claim
insurrence: ");
scanf("%d", &id);
int i;
for (i = 0; i < userCount; i++)
{
if (users[i].id == id)
{
found =
true;
break;
}
}
if (found == false)
...

ADVERTISEMENT

Get Answers For Free

Most questions answered within 1 hours.

ADVERTISEMENT

asked 2 minutes ago

asked 11 minutes ago

asked 12 minutes ago

asked 18 minutes ago

asked 19 minutes ago

asked 33 minutes ago

asked 37 minutes ago

asked 38 minutes ago

asked 38 minutes ago

asked 41 minutes ago

asked 44 minutes ago

asked 46 minutes ago