C贸digo del ejercicio:
#include <iostream>
#include <clocale>
using namespace std;
int main()
{
setlocale(LC_CTYPE, "Spanish");
int num, cm = 0;
cout<<"Ingrese un n煤mero: "; cin>>num;
while(num > 0){
if((num % 10) % 3 == 0){
cm++;
}
num /= 10;
}
cout<<"Los d铆gitos m煤ltiplos de tres son: "<<cm;
return 0;
}
Definici贸n de los c贸digos del ejercicio:
#include <iostream> --> significa flujo de entrada-salida est谩ndar. Este archivo de encabezado contiene definiciones de objetos como cin, cout, cerr, etc.
#include <clocale> --> especificador de configuraci贸n regional.
using namespace std; --> un espacio de nombres es una colecci贸n de nombres o identificadores relacionados (funciones, clases, variables) que ayudan a separar estos identificadores de identificadores similares en otros espacios de nombres o en el espacio de nombres global. Los identificadores de la biblioteca est谩ndar de C++ se definen en un espacio de nombres llamado std.
int --> dato entero de 32 bits.
main() --> la funci贸n main() es el punto de entrada de cualquier programa C++. Es el punto en el que se inicia la ejecuci贸n del programa. Cuando se ejecuta un programa C++, el control de ejecuci贸n va directamente a la funci贸n main(). Cada programa C++ tiene una funci贸n main().
return 0; --> devolver 0 en la funci贸n principal significa que el programa se ejecut贸 correctamente.
setlocale(); --> sirve para configurar nuestro programa acorde a los par谩metros locales de la computadora donde se ejecuta el programa, uno de estos par谩metros es el idioma.
LC_CTYPE --> selecciona la categor铆a de clasificaci贸n de caracteres del entorno local.
setlocale(LC_CTYPE, "Spanish"); --> dentro de las comillas del segundo par谩metro colocaremos la palabra "Spanish" para que as铆 se utilicen los par谩metros hispanos por defecto.
cout<<""; --> se utiliza para mostrar la salida al dispositivo de salida est谩ndar, es decir, monitor.
cin>> --> se utiliza para aceptar la entrada del dispositivo de entrada est谩ndar, es decir, el teclado.
while --> el ciclo while recorre un bloque de c贸digo siempre que una condici贸n espec铆fica sea verdadera.
> --> el operador mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
if --> use if para especificar un bloque de c贸digo que se ejecutar谩, si una condici贸n especificada es verdadera.
% --> el operador de modulo ( % ) devuelve el resto de la divisi贸n.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.
/= --> el operador de asignaci贸n de divisi贸n ( /= ) divide el valor del operando derecho de una variable y asigna el resultado a la variable.
Explicaci贸n del C贸digo:
Este programa solicita un n煤mero entero positivo y cuenta cu谩ntos de sus
d铆gitos son m煤ltiplos de 3. Al finalizar, muestra la cantidad encontrada.
1. Inclusi贸n de librer铆as
#include <iostream>
#include <clocale>
Estas librer铆as permiten utilizar funciones de entrada y salida de datos
(cin y cout) y configurar el idioma del programa.
2. Espacio de nombres
using namespace std;
Permite utilizar los elementos de la biblioteca est谩ndar sin escribir
std:: delante de cada uno.
3. Funci贸n principal
int main()
{
...
}
La funci贸n main() es el punto de inicio de ejecuci贸n del programa.
4. Configuraci贸n regional
setlocale(LC_CTYPE, "Spanish");
Configura el programa para trabajar correctamente con caracteres propios del idioma espa帽ol.
5. Declaraci贸n de variables
int num, cm = 0;
- num: almacena el n煤mero ingresado por el usuario.
- cm: contador de d铆gitos m煤ltiplos de 3 encontrados.
6. Entrada de datos
cout << "Ingrese un n煤mero: ";
cin >> num;
Se solicita al usuario ingresar un n煤mero y se guarda en la variable
num.
7. Recorrido de los d铆gitos
while(num > 0)
El ciclo se ejecuta mientras el n煤mero sea mayor que cero. En cada repetici贸n
se analiza el 煤ltimo d铆gito del n煤mero.
8. Verificaci贸n de m煤ltiplos de 3
if((num % 10) % 3 == 0)
{
cm++;
}
La expresi贸n num % 10 obtiene el 煤ltimo d铆gito del n煤mero.
Luego se verifica si dicho d铆gito es m煤ltiplo de 3.
Si el residuo de dividir el d铆gito entre 3 es igual a 0, significa que
el d铆gito es m煤ltiplo de 3 y el contador cm aumenta en uno.
Los d铆gitos m煤ltiplos de 3 son:
0, 3, 6 y 9.
9. Eliminaci贸n del 煤ltimo d铆gito
num /= 10;
Divide el n煤mero entre 10 y elimina el 煤ltimo d铆gito ya analizado para continuar
con el siguiente.
10. Mostrar resultado
cout << "Los d铆gitos m煤ltiplos de tres son: " << cm;
Muestra la cantidad total de d铆gitos m煤ltiplos de 3 encontrados en el n煤mero ingresado.
11. Finalizaci贸n del programa
return 0;
Indica que el programa termin贸 correctamente.
Ejemplo de ejecuci贸n
Ingrese un n煤mero: 96342
脷ltimo d铆gito: 2 → No es m煤ltiplo de 3
脷ltimo d铆gito: 4 → No es m煤ltiplo de 3
脷ltimo d铆gito: 3 → S铆 es m煤ltiplo de 3
脷ltimo d铆gito: 6 → S铆 es m煤ltiplo de 3
脷ltimo d铆gito: 9 → S铆 es m煤ltiplo de 3
Los d铆gitos m煤ltiplos de tres son: 3
Resumen
El programa recorre cada d铆gito de un n煤mero utilizando operaciones matem谩ticas.
Obtiene el 煤ltimo d铆gito con % 10, verifica si es m煤ltiplo de 3,
incrementa un contador cuando lo es y finalmente muestra la cantidad encontrada.