C Exercises: Hailstone Sequence of a given number upto 1
C Recursion : Exercise-18 with Solution
Write a C program to find the Hailstone Sequence of a given number up to 1.
Sample Solution:
C Code:
#include <stdio.h>
// function to generate next number
int getNextValue(int aNum)
{
int i = aNum;
if (i % 2 == 0)
{
i = i/2;
}
else
{
i = 3 * i + 1;
}
return (i);// returning the value of next number to the called function
}
// function to generate Hailstone number
void getHailstone(int aNum)
{
int hlSe = aNum;
if (hlSe == 1)
{
printf("%i ", hlSe);
}
else
{
printf(" %i ", hlSe);
getHailstone(getNextValue(hlSe));// calling the function itself recursively
}
}
// Function to count the length of the Hailstone sequence
int countLength(int aNum)
{
int hlSe = aNum;
if(hlSe == 1)
{
return 1;
}
else
{
return 1+countLength(getNextValue(hlSe));// calling the function itself recursively
}
}
int main(int argu)
{
int aNum;
printf("\n\n Recursion : Hailstone Sequence of a given number upto 1 :\n");
printf("--------------------------------------------------------------\n");
printf(" Input any number (positive) to start for Hailstone Sequence : ");
scanf("%i", &aNum);
printf("\n The hailstone sequence starting at %i is : \n", aNum);
getHailstone(aNum);
printf("\n\n");
printf(" The length of the sequence is %i. \n\n", countLength(aNum));
return 0;
}
Sample Output:
Recursion : Hailstone Sequence of a given number upto 1 : -------------------------------------------------------------- Input any number (positive) to start for Hailstone Sequence : 13 The hailstone sequence starting at 13 is : 13 40 20 10 5 16 8 4 2 1 The length of the sequence is 10
Flowchart:
C Programming Code Editor:
Previous: Write a program in C to calculate the power of any number using recursion.
Next: Write a program in C to copy One string to another using recursion.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://www.w3resource.com/c-programming-exercises/recursion/c-recursion-exercise-18.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics