Calcular El Número De Dígitos En Un Entero Positivo (Manejo De Entradas Negativas) En C#

En este programa de C#, se le pedirá al usuario que introduzca un entero. El programa calculará y mostrará el número de dígitos de ese entero. El enfoque clave consiste en dividir repetidamente el número entre 10 para extraer cada dígito y contar cuántas veces es posible realizar esta división.

Para cumplir con el requisito de manejar enteros negativos, el programa comprobará si el número introducido es negativo. De ser así, se mostrará un mensaje de advertencia y el programa lo convertirá a su valor absoluto antes de realizar el conteo de dígitos.

Este tipo de problema puede ser útil en situaciones donde se necesita validar o manipular números según su tamaño, especialmente al trabajar con entradas del usuario. El enfoque aprovecha una técnica matemática sencilla para descomponer el problema y obtener el resultado deseado.



Grupo

Conceptos básicos control de flujo en C#

Objectivo

Escriba un programa en C# para calcular el número de dígitos de un entero positivo (pista: esto se puede hacer dividiendo repetidamente entre 10). Si el usuario introduce un entero negativo, el programa mostrará un mensaje de advertencia y procederá a calcular el número de dígitos del entero positivo equivalente.

Por ejemplo:
Número = 32
2 dígitos
Número = -4000
(Advertencia: es un número negativo) 4 dígitos

Ejemplo de ejercicio en C#

 Copiar código C#
using System;

namespace CountDigits
{
    class Program
    {
        static void Main(string[] args)
        {
            // Prompt the user to enter a number
            Console.Write("Enter a number: ");
            int number = int.Parse(Console.ReadLine()); // Read the input number

            // Check if the number is negative
            if (number < 0)
            {
                Console.WriteLine("(Warning: it is a negative number)"); // Display a warning for negative numbers
                number = Math.Abs(number); // Convert the negative number to positive by using Math.Abs
            }

            // Initialize a counter for the number of digits
            int digitCount = 0;

            // Check if the number is 0, as it has exactly one digit
            if (number == 0)
            {
                digitCount = 1; // The number 0 has one digit
            }
            else
            {
                // Loop to divide the number by 10 until it becomes 0
                while (number > 0)
                {
                    number /= 10; // Divide the number by 10 in each iteration
                    digitCount++; // Increment the digit count
                }
            }

            // Display the result
            Console.WriteLine($"The number has {digitCount} digits.");
        }
    }
}

 Output

Enter a number: 32
The number has 2 digits.

Comparte este ejercicio de C#

Practica más ejercicios C# de Conceptos básicos control de flujo en C#

¡Explora nuestro conjunto de ejercicios de práctica de C#! Diseñados específicamente para principiantes, estos ejercicios te ayudarán a desarrollar una sólida comprensión de los fundamentos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte gradualmente a medida que adquieres confianza en la programación en C#..