Problem Statement:
Write a function countDigits(n)that takes an integer n and
returns how many digits it contains.
Requirements:
- Handles both positive and negative integers.
-
Return
1 if n is 0(since 0 is a single-digit number).
Examples:
Input:259
Output:3
Input:-1035
Output:4
Input:0
Output:1
Approach:
-
Handle Zero:If
n == 0, return 1 directly. -
Convert to Positive:Use
abs(n)to ignore sign. -
Initialize a counter:Set
count = 0. - Loop:While
n > 0 - Divide
nby 10 using integer division. - Increment
count. -
Return: The
countafter the loop finishes.
Visualisation:
function countDigits(n) {
if (n === 0) return 1;
n = Math.abs(n);
let count = 0;
while (n > 0) {
n = Math.floor(n / 10);
count++;
}
return count;
}
console.log(countDigits(259)); // 3
def count_digits(n):
if n == 0:
return 1
n = abs(n)
count = 0
while n > 0:
n //= 10
count += 1
return count
num = 259
result = count_digits(num)
print(result) # Output: 3
public class Main {
public static int countDigits(int n) {
if (n == 0) return 1;
n = Math.abs(n);
int count = 0;
while (n > 0) {
n /= 10;
count++;
}
return count;
}
public static void main(String[] args) {
int num = 259;
int result = countDigits(num);
System.out.println(result); // Output: 3
}
}
#include <iostream>
#include <climits>
using namespace std;
int countDigits(int n) {
if (n == 0) return 1;
n = abs(n);
int count = 0;
while (n > 0) {
n /= 10;
count++;
}
return count;
}
int main() {
int num = 259;
int result = countDigits(num);
cout << result << endl; // Output: 3
return 0;
}
#include <stdio.h>
#include <limits.h>
int countDigits(int n) {
if (n == 0) return 1;
n = abs(n);
int count = 0;
while (n > 0) {
n /= 10;
count++;
}
return count;
}
int main() {
int num = 259;
int result = countDigits(num);
printf("%d\n", result); // Output: 3
return 0;
}
using System;
class Program
{
static void Main()
{
int number = 459;
int digitCount = CountDigits(number);
Console.WriteLine($"Number of digits in {number} is {digitCount}");
}
static int CountDigits(int n)
{
n = Math.Abs(n);
if (n == 0)
return 1;
int count = 0;
while (n > 0)
{
n /= 10;
count++;
}
return count;
}
}
