Efficiency of Recursion vs Iteration in C

Question: Which is more Efficient in C Programming – Recursion OR Iteration?

Answer: In general, recursion is slow, exhausting computer’s memory resources while iteration performs on the same variables and so is efficient. But recursion on the other hand, in some situations, offers convenient tool than iterations. Let’s take an example of a program below which converts integers to binary and displays them.

 * int2bin_thru_recur.c -- program converts integer to binary using
 * recursion
#include <stdio.h>
void int2bin(int);
int main(void)
    int num;
    printf("Program converts integer to binary...\n");
    printf("Enter some positive integer: (q to quit)\n");
    while (scanf("%d", &num) == 1) {
          printf("\nEnter some positive integer: (q to quit)\n");
    printf("Thank you!\n");
    return 0;
void int2bin(int n)
    int bit;
    if (n >= 2) {
        bit = n % 2;
        int2bin(n / 2);
        printf("%d", bit);
    else {
             bit = n;
 	     printf("%d", bit);
	     return;		/* function type is void */

Output of the program when compiled on Linux System.

Program converts integer to binary...
Enter some positive integer: (q to quit)
Enter some positive integer: (q to quit)
Enter some positive integer: (q to quit)
Enter some positive integer: (q to quit)
Enter some positive integer: (q to quit)
Thank you!

While same job when performs using loop requires, in one of approaches, all previous values to be stored in an array and print the values in reverse order.


Sanfoundry Global Education & Learning Series – 1000 C Tutorials.

If you wish to look at all C Tutorials, go to C Tutorials.

Subscribe to our Newsletters (Subject-wise). Participate in the Sanfoundry Certification contest to get free Certificate of Merit. Join our social networks below and stay updated with latest contests, videos, internships and jobs!

Youtube | Telegram | LinkedIn | Instagram | Facebook | Twitter | Pinterest
Manish Bhojasia - Founder & CTO at Sanfoundry
Manish Bhojasia, a technology veteran with 20+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He lives in Bangalore, and focuses on development of Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Stay connected with him at LinkedIn.

Subscribe to his free Masterclasses at Youtube & discussions at Telegram SanfoundryClasses.