Solve Tower-of-Hanoi Problem using Recursion
#include
#include
void towers(int, char, char, char);
int main()
{
int num;
clrscr();
printf("Enter the number of disks : ");
scanf("%d", &num);
printf("The sequence of moves involved in the Tower of Hanoi are :\n");
towers(num, 'A', 'C', 'B');
return 0;
}
void towers(int num, char frompeg, char topeg, char auxpeg)
{
if (num == 1)
{
printf("\n Move disk 1 from peg %c to peg %c", frompeg, topeg);
return;
}
towers(num - 1, frompeg, auxpeg, topeg);
printf("\n Move disk %d from peg %c to peg %c", num, frompeg, topeg);
towers(num - 1, auxpeg, topeg, frompeg);
}
Output
Enter the number of disks : 3
The sequence of moves involved in the Tower of Hanoi are :
Move disk 1 from peg A to peg C
Move disk 2 from peg A to peg B
Move disk 1 from peg C to peg B
Move disk 3 from peg A to peg C
Move disk 1 from peg B to peg A
Move disk 2 from peg B to peg C
Move disk 1 from peg A to peg C
Copy One String to Another using Recursion
#include
#include
void copy(char [], char [], int);
int main()
{
char str1[20], str2[20];
clrscr();
printf("Enter string to copy: ");
scanf("%s", str1);
copy(str1, str2, 0);
printf("Copying success.\n");
printf("The first string is: %s\n", str1);
printf("The second string is: %s\n", str2);
return 0;
}
void copy(char str1[], char str2[], int index)
{
str2[index] = str1[index];
if (str1[index] == '\0')
return;
copy(str1, str2, index + 1);
}
Output
Enter string to copy: sanfoundry
Copying success.
The first string is: sanfoundry
The second string is: sanfoundry
Find whether a Number is Prime or Not using Recursion
#include
#include
int primeno(int, int);
int main()
{
int num, check;
clrscr();
printf("Enter a number: ");
scanf("%d", &num);
check = primeno(num, num / 2);
if (check == 1)
{
printf("%d is a prime number\n", num);
}
else
{
printf("%d is not a prime number\n", num);
}
return 0;
}
int primeno(int num, int i)
{
if (i == 1)
{
return 1;
}
else
{
if (num % i == 0)
{
return 0;
}
else
{
return primeno(num, i - 1);
}
}
getch();
}
Output
Enter a number: 456
456 is not a prime number
Enter a number: 89
89 is a prime number
No comments:
Post a Comment