English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C ++Programa verifica si un número dado es afortunado (todos los dígitos son diferentes)

Dado un número, la tarea es verificar si el número ingresado es un número afortunado y mostrar el resultado.

¿Qué es un número afortunado?

Un número afortunado es un número en el que cada dígito es diferente, si al menos hay un dígito repetido, ese número no se considerará un número afortunado.

Ejemplo

Entrada-: n = 1234
Salida-: Es un número afortunado
Explicación-: Como no hay dígitos repetidos en el número n, es un número afortunado
Entrada-: n = 3434
Salida-: No es un número afortunado
Explicación-: En el número dado n, 3 y 4 se repiten dos veces, por lo que no es un número afortunado

Los métodos que utilizamos en el programa dado son los siguientes-

  • Desde el número ingresado por el usuario n para verificar si es un número afortunado

  • Recorrer todo el número hasta que el tamaño de un número

  • Marcar cada número visitado y verificar si se ha encontrado

  • Mostrar si el número dado es un número afortunado

Algoritmo

Inicio
Paso1-> declarar función para verificar si un número dado es afortunado o no
   bool check_lucky(int size)
   declarar bool arr[10]
   Bucle For int i = 0 y i <10 y i++
      Establecer arr[i] = false
   Finalizar
   Bucle Mientras(size > 0)
      declarar int digit = size % 10
      SI (arr[digit])
         devolver false
      Finalizar
      establecer arr[digit] = true
      Establecer size = size/10
   Finalizar
   devolver true
Paso 2-> En main() Declarar int arr[] = {0,34,2345,1249,1232{}
   calcular int size = sizeof(arr)/sizeof(arr[0])
   Bucle For int i = 0 y i < size y i++
      check_lucky(arr[i])?
      imprimir es Lucky: imprimir no es Lucky
   Finalizar
Detener

Ejemplo

#include<iostream>
using namespace std;
//si hay un número, devuelve true.
bool check_lucky(int size) {
    bool arr[10];
    for (int i = 0; i <10; i++)
        arr[i] = false;
    while (size > 0) {
    int digit = size % 10;
      if (arr[digit])
           return false;
        arr[digit] = true;
        size = size/10;
    {}
    return true;
{}
int main() {
    int arr[] = {0,34,2345,1249,1232};
    int size = sizeof(arr);/sizeof(arr[0]);
    for (int i = 0; i < size;++)
        check_lucky(arr[i]) ? cout << arr[i] << " es Lucky \n" : cout << arr[i] << " no es Lucky \n";
    return 0;
{}

Resultado de salida

19 Es afortunado
34 Es afortunado
2345 Es afortunado
1249 Es afortunado
1232 No es afortunado