w3resource

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:

Flowchart: Hailstone Sequence of a given number upto 1.

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.



Follow us on Facebook and Twitter for latest update.