**Problem:** Write a C++ program to count the number of digits in a number.

**Example:**

Input : 249 Output : 3 Input : 7500 Output : 4

**The number of times we can divide a number by 10 is the number of digits the number has.**

We repeatedly divide the number by 10 (i.e.

) until it is reduced to zero and meanwhile count the number of divisions to get the count of digits.**num=num/10**

```
#include <iostream>
using namespace std;
int main()
{
int num, count=0;
cout <<"Enter number \n";
cin >> num;
//If number is -ve, convert it to +ve
if(num<0)
num=num*-1;
while(num>0){
num=num/10;
count++;
}
cout <<"Number of Digits: " << count;
return 0;
}
```

**Output:**

`Enter number`

7845

Number of Digits: 4

7845

Number of Digits: 4

**Note:** In the program, before starting the counting process we check for negative input. If the input is found negative then we have to multiply it by -1 to convert it to a positive integer.

**Explanation**:

Initially: `num`

= 7845, `count`

= 0

After the first iteration of while loop: `num`

= 785, `count`

= 1

After the second iteration of while loop: `num`

= 78, `count`

= 2

After the third iteration of while loop: `num`

= 7, `count`

= 3

After the fourth iteration of while loop: `num`

= 0, `count`

= 4

While loop execution end after 4th iteration because num is reduced to 0 therefore the loop condition **num>0** fails. The final value of `count`

is 4.