C programs to count the digits in an integer have been shown here. For example, if a number is 9876, the total number of digits is 4. The algorithm, pseudocode and time complexity of the programs have also been covered below.

## 1. Algorithm to count the digits in an integer

1. Take a number x as input.

2. Initialize a counter to 0 say c = 0.

3. Perform x = x / 10 and Increment c by 1 i.e. c = c + 1

4. If x = 0 stop the process and display c as output else go to step 3.

## 2. Pseudocode to count the digits in an integer

Input : A number $n$

Output : Total no of digits in $n$

1. Procedure countDigits($n$):

2. $c \leftarrow 0$

3. If $n == 0$:

4. $c \leftarrow 1$

5. Else:

6. Repeat until $n \neq 0$

7. $n \leftarrow n / 10$

8. $c \leftarrow c + 1$

9. Return $c$

10. End Procedure

## 3. Time complexity to count the digits in an integer

Time Complexity: O(log(n))

Where n is the input number.

## 4.1. C Program & output to count the digits in an integer using iteration

Code has been copied
/*****************************************
alphabetacoder.com
C program to count the number of digits
in an integer using iterative approach
******************************************/

#include <stdio.h>

int main() {
// declare variables
int num, count = 0;

// take input of the number
printf("Enter the integer = ");
scanf("%d", & num);

//count the digits
if (num == 0)
count = 1;
else {
while (num != 0) {
num = num / 10;
count++;
}
}

// display result
printf("Number of digits = %d", count);

return 0;
}


Output

Case 1:

Enter the integer = 8912

Number of digits = 4

Case 2:

Enter the integer = 5413896

Number of digits = 7

## 4.2. C Program & output to count the digits in an integer using recursion

Code has been copied
/*****************************************
alphabetacoder.com
C program to count the number of digits
in an integer using recursive approach
******************************************/

#include <stdio.h>

// recursive function to calculate
// no of digits in an integer
int count_digit(int num) {
if (num / 10 == 0)
return 1;
else
// call function
return 1 + count_digit(num / 10);
}

int main() {
// declare variables
int num, count = 0;

// take input of the number
printf("Enter the integer = ");
scanf("%d", & num);

//count the digits by calling function
count = count_digit(num);

// display result
printf("Number of digits = %d", count);

return 0;
}


Output

Case 1:

Enter the integer = 8912

Number of digits = 4

Case 2:

Enter the integer = 0

Number of digits = 1

## 4.3. C Program & output to count the digits in an integer using logarithm

Code has been copied
/************************************
alphabetacoder.com
C program to count the number of
digits in an integer using logarithm
**************************************/

#include <stdio.h>
#include <math.h>

int main() {
// declare variables
int num;

// take input of the number
printf("Enter the integer = ");
scanf("%d", & num);

if (num == 0) // if input number = 0
printf("Number of digits = 1");
else {
// calculate result using log10
printf("Number of digits = %d", (int) floor(log10(num) + 1));
}

return 0;
}


Output

Case 1:

Enter the integer = 3456

Number of digits = 4

Case 2:

Enter the integer = 1234567

Number of digits = 7