Skip to content
Related Articles

Related Articles

Improve Article

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

  • Difficulty Level : Easy
  • Last Updated : 31 May, 2021

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 the variable n. Then the while loop is iterated until the test expression n != 0 is evaluated to 0 (false). 

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

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

C++




// 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

C




// 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;
}

Java




// 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 code */
    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.

Python3




# 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

C#




// 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 code */
    public static void Main()
    {
        long n = 345289467;
        Console.WriteLine("Number of"
                          + " digits : " + countDigit(n));
    }
}
 
// This code is contributed by anuj_67.

PHP




<?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
?>

Javascript




<script>
 
// Iterative Javascript program to count
// number of digits in a number
 
function countDigit(n)
{
    let count = 0;
    while (n != 0)
    {
        n = Math.floor(n / 10);
        ++count;
    }
    return count;
}
 
// Driver code
 
    n = 345289467;
    document.write("Number of digits : "+ countDigit(n));
     
// This code is contributed by Mayank Tyagi
 
</script>
Output



Number of digits : 9

Recursive Solution: 

C++




// 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/10 == 0)
        return 1;
    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.

C




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

Java




// JAVA Code to count number of
// digits in an integer
import java.util.*;
 
class GFG {
 
    static int countDigit(long n)
    {
        if (n/10 == 0)
            return 1;
        return 1 + countDigit(n / 10);
    }
 
    /* Driver code */
    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.

Python3




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

C#




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

PHP




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

Javascript




<script>
 
// Recursive Javascript program to count number of
// digits in a number
 
function countDigit(n)
{
    if (n/10 == 0)
        return 1;
    return 1 + countDigit(parseInt(n / 10));
}
 
// Driver code
var n = 345289467;
document.write("Number of digits :" + countDigit(n));
 
</script>
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++




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

C




// 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;
}

Java




// 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 code */
    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.

Python3




# 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.log10(n)+1)
 
 
# Driver Code
n = 345289467
print("Number of digits : % d" % (countDigit(n)))
 
# This code is contributed by Shreyanshi Arun

C#




// 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 code */
    public static void Main()
    {
        long n = 345289467;
        Console.WriteLine("Number of digits : "
                          + countDigit(n));
    }
}
 
// This code is contributed by anuj_67..

PHP




<?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
?>

Javascript




<script>
 
// Log based Javascript program to count number of
// digits in a number
function countDigit(n)
{
    return Math.floor(Math.log10(n) + 1);
}
 
// Driver code
var n = 345289467;
document.write("Number of digits : "  +
               countDigit(n));
                
// This code is contributed by noob2000
 
</script>
Output
Number of digits : 9

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

C++




#include <bits/stdc++.h>
using namespace std;
 
// To count the no. of digits in a number
void count_digits(int n)
{
    // converting number to string using
    // to_string in C++
    string num = to_string(n);
 
    // calculate the size of string
    cout << num.size() << endl;
}
//Driver Code
int main()
{
    // number
    int n = 345;
    count_digits(n);
    return 0;
}
 
// This code is contributed by Shashank Pathak

Java




import java.util.*;
public class GFG {
 
    // To count the no. of digits in a number
    static void count_digits(int n)
    {
        // converting number to string using
        // to_string in C++
        String num = Integer.toString(n);
 
        // calculate the size of string
 
        System.out.println(+num.length());
    }
    // Driver code
    public static void main(String args[])
    {
        // number
        int n = 345;
        count_digits(n);
    }
}
// Code is contributed by shivanisinghss2110

Python3




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

C#




// C# implementation of the above approach
using System;
using System.Collections.Generic;
 
class GFG {
 
    // To count the no. of digits in a number
    static void count_digits(int n)
    {
        // converting number to string using
        // to_string in C#
 
        string num = Convert.ToString(n);
 
        // calculate the size of string
        Console.WriteLine(+num.Length);
    }
 
    // Driver Code
    public static void Main(string[] args)
    {
        // number
        int n = 345;
        count_digits(n);
    }
}
 
// This code is contributed by shivanisinghss2110

Javascript




<script>
    // Javascript implementation of the above approach
     
    // To count the no. of digits in a number
    function count_digits(n)
    {
        // converting number to string using
        // to_string in javascript
  
        let num = n.toString();
  
        // calculate the size of string
        document.write(num.length);
    }
     
    // number
    let n = 345;
    count_digits(n);
     
</script>
Output
3

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.
 

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :