Given a number N, the task is to return the count of digits in this number.
Example:
Program to count digits in an integer
Simple Iterative Solution to count digits in an integer
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). We will consider 3456 as the input integer.
- After the first iteration, the value of n will be updated to 345 and the count is incremented to 1.
- After the second iteration, the value of n will be updated to 34 and the count is incremented to 2.
- After the third iteration, the value of n will be updated to 3 and the count is incremented to 3.
- In the fourth iteration, the value of n will be updated to zero and the count will be incremented to 4.
- Then the test expression is evaluated ( n!=0 ) as false and the loop terminates with final count as 4.
Below is the implementation of the above approach:
C++
// Iterative 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
1;
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)
{
if
(n == 0)
return
1;
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
Time Complexity : O(log10(n)) or O(num digits)
Auxiliary Space: O(1) or constant
Recursive Solution to count digits in an integer
Keep dividing the number by 10 this reduces the input number size by 1 and keeps track of the number of sizes reduced.
Algorithm:
- The base condition of this recursive approach is when we divide the number by 10 and the number gets reduced to 0, so return 1 for this operation.
- Make a function call by dividing the number by 10, reducing the input size of the given number by 1, and adding 1 for this operation.
Below is the implementation of the above approach:
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
Time Complexity : O(log(n))
Auxiliary Space : O(log(n))
Log-based Solution to count digits in an integer
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).
Below is the implementation of the above idea:
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
Time Complexity: O(1) or constant
Auxiliary Space: O(1) or constant
Converting given number to string solution to count digits in an integer
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
Time Complexity: O(1) or constant
Auxiliary Space: O(Number of digits in an integer)
This article is contributed by Suruchi Kumari . If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to review-team@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 Notesarrow_drop_up