Program to count digits in an integer (4 Different Methods)

Count the number of digits in a long integer entered by a user.



Simple Iterative Solution
The integer entered by the user is stored in variable n. Then the while loop is iterated until the test expression n != 0 is evaluated to 0 (false).

  1. After first iteration, the value of n will be 345 and the count is incremented to 1.
  2. After second iteration, the value of n will be 34 and the count is incremented to 2.
  3. After third iteration, the value of n will be 3 and the count is incremented to 3.
  4. At the start of fourth iteration, the value of n will be 0 and the loop is terminated.

Then the test expression is evaluated to false and the loop terminates.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// Iterative C++ program to count
// number of digits in a number
#include <bits/stdc++.h>
using namespace std;
  
int countDigit(long long n)
{
    int count = 0;
    while (n != 0) {
        n = n / 10;
        ++count;
    }
    return count;
}
  
// Driver code
int main(void)
{
    long long n = 345289467;
    cout << "Number of digits : "
         << countDigit(n);
    return 0;
}
  
// This code is contributed
// by Akanksha Rai

chevron_right


C

filter_none

edit
close

play_arrow

link
brightness_4
code

// Iterative C program to count number of
// digits in a number
#include <stdio.h>
  
int countDigit(long long n)
{
    int count = 0;
    while (n != 0) {
        n = n / 10;
        ++count;
    }
    return count;
}
  
// Driver code
int main(void)
{
    long long n = 345289467;
    printf("Number of digits : %d",
           countDigit(n));
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// JAVA Code to count number of
// digits in an integer
class GFG {
  
    static int countDigit(long n)
    {
        int count = 0;
        while (n != 0) {
            n = n / 10;
            ++count;
        }
        return count;
    }
  
    /* Driver program to test above function */
    public static void main(String[] args)
    {
        long n = 345289467;
        System.out.print("Number of digits : " + countDigit(n));
    }
}
// This code is contributed by Arnav Kr. Mandal.

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Iterative Python program to count
# number of digits in a number
  
def countDigit(n):
    count = 0
    while n != 0:
        n //= 10
        count+= 1
    return count
  
# Driver Code    
n = 345289467
print ("Number of digits : % d"%(countDigit(n)))
  
# This code is contributed by Shreyanshi Arun

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# Code to count number of
// digits in an integer
using System;
  
class GFG {
  
    static int countDigit(long n)
    {
        int count = 0;
        while (n != 0) {
            n = n / 10;
            ++count;
        }
        return count;
    }
  
    /* Driver program to test
    above function */
    public static void Main()
    {
        long n = 345289467;
        Console.WriteLine("Number of"
                          + " digits : " + countDigit(n));
    }
}
  
// This code is contributed by anuj_67.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// Iterative PHP program to count 
// number of digits in a number
  
function countDigit($n)
{
    $count = 0;
    while ($n != 0) 
    {
        $n = round($n / 10);
        ++$count;
    }
    return $count;
}
  
// Driver code
$n = 345289467;
echo "Number of digits : "
        . countDigit($n);
  
//This code is contributed by mits
?>

chevron_right



Output :

Number of digits : 9

Recursive Solution:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// Recursive C++ program to count number of
// digits in a number
#include <bits/stdc++.h>
using namespace std;
  
int countDigit(long long n)
{
    if (n == 0)
        return 0;
    return 1 + countDigit(n / 10);
}
  
// Driver code
int main(void)
{
    long long n = 345289467;
    cout << "Number of digits :" << countDigit(n);
    return 0;
}
// This code is contributed by Mukul Singh.

chevron_right


C

filter_none

edit
close

play_arrow

link
brightness_4
code

// Recursive C program to count number of
// digits in a number
#include <stdio.h>
  
int countDigit(long long n)
{
    if (n == 0)
        return 0;
    return 1 + countDigit(n / 10);
}
  
// Driver code
int main(void)
{
    long long n = 345289467;
    printf("Number of digits : %d",
           countDigit(n));
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// JAVA Code to count number of
// digits in an integer
import java.util.*;
  
class GFG {
  
    static int countDigit(long n)
    {
        if (n == 0)
            return 0;
        return 1 + countDigit(n / 10);
    }
  
    /* Driver program to test above function */
    public static void main(String[] args)
    {
        long n = 345289467;
        System.out.print("Number of digits : " + countDigit(n));
    }
}
  
// This code is contributed by Arnav Kr. Mandal.

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Recursive Python program to count
# number of digits in a number
  
def countDigit(n):
    if n == 0:
        return 0
    return 1 + countDigit(n // 10)
  
# Driver Code    
n = 345289467
print ("Number of digits : % d"%(countDigit(n)))
  
# This code is contributed by Shreyanshi Arun

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# Code to count number of
// digits in an integer
using System;
  
class GFG {
  
    static int countDigit(long n)
    {
        if (n == 0)
            return 0;
        return 1 + countDigit(n / 10);
    }
  
    /* Driver program to test above
    function */
    public static void Main()
    {
        long n = 345289467;
        Console.WriteLine("Number of "
                          + "digits : " + countDigit(n));
    }
}
  
// This code is contributed by anuj_67.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// Recursive PHP program to count
// number of digits in a number
  
function countDigit($n)
{
    if ($n == 0)
        return 0;
    return 1 + countDigit((int)($n / 10));
}
  
// Driver Code 
$n = 345289467;
print ("Number of digits : "
            (countDigit($n)));
  
// This code is contributed by mits
?>

chevron_right



Output :

Number of digits : 9

Log based Solution:
We can use log10(logarithm of base 10) to count the number of digits of positive numbers (logarithm is not defined for negative numbers).

Digit count of N = upper bound of log10(N).

C

filter_none

edit
close

play_arrow

link
brightness_4
code

// Log based C program to count number of
// digits in a number
#include <math.h>
#include <stdio.h>
  
int countDigit(long long n)
{
    return floor(log10(n) + 1);
}
  
// Driver code
int main(void)
{
    long long n = 345289467;
    printf("Number of digits : %d",
           countDigit(n));
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// JAVA Code to count number of
// digits in an integer
import java.util.*;
  
class GFG {
  
    static int countDigit(long n)
    {
        return (int)Math.floor(Math.log10(n) + 1);
    }
  
    /* Driver program to test above function */
    public static void main(String[] args)
    {
        long n = 345289467;
        System.out.print("Number of digits : " + countDigit(n));
    }
}
// This code is contributed by Arnav Kr. Mandal.

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Log based Python program to count number of
# digits in a number
  
# function to import ceil and log 
import math
  
def countDigit(n):
    return math.floor(math.log(n, 10)+1)
  
# Driver Code
n = 345289467
print ("Number of digits : % d"%(countDigit(n)))
  
# This code is contributed by Shreyanshi Arun

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# Code to count number of
// digits in an integer
using System;
  
class GFG {
  
    static int countDigit(long n)
    {
        return (int)Math.Floor(Math.Log10(n) + 1);
    }
  
    /* Driver program to test above function */
    public static void Main()
    {
        long n = 345289467;
        Console.WriteLine("Number of digits : "
                          + countDigit(n));
    }
}
  
// This code is contributed by anuj_67..

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// Log based php program to 
// count number of digits
// in a number
  
function countDigit($n)
{
    return floor(log10($n)+1);
}
  
// Driver code
$n = 345289467;
echo "Number of digits : ",
    countDigit($n);
  
// This code is contributed by ajit
?>

chevron_right



Output :

Number of digits : 9

Method 4:
We can convert the number into string and then find the length of the string to get the number of digits in the original number.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 implementation of the approach
def count_digits(n):
    n = str(n)
    return len(n)
  
# Driver code
n = 456533457776
print(count_digits(n))

chevron_right


This article is contributed by Vishal Kumar Gupta. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



My Personal Notes arrow_drop_up