C Exercises: Hailstone Sequence of a given number upto 1
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.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics