domingo, 7 de marzo de 2021

Programa en C++ para calcular N cantidad de números narcisistas.

 DESCARGAR CODIGO. 

/* Números narcisistas 

   Un número narcisista es un número de n dígitos, que coincide con la suma 

   de las potencias n-ésimas de sus dígitos. */


#include<iostream>

#include<math.h> 

#include<stdlib.h>

using namespace std;

int main(){

/*Varibles declaradas

n -> Cantidad de números a mostrar.

num -> Variable que se ira sumando, representa todos los numeros y en cada ejecucion 

del ciclo externo se le suma uno.

numaux,numaux2 -> numero que guarda a num, pero este se modificara en la ejecucion.

                i -> Variable para contar los numeros narcicistas encontrados.

cont_dig -> Variable para saber cuantos dígitos tiene la variable narcisista(Sera el exponente).

suma -> suma los valores de cada potencia en los números.

digit -> Es un entero en el cual se van guardando todos los dígitos para luego poder

aplicarle la potencia.

*/

long long n,num=1,numaux,numaux2,i=0,cont_dig;

long long suma,digit;

//Pedimos la cantidad de números que desea ver el usuario

do{

cout<<"CUANTOS NUMEROS NARCISISTAS DESEA BUSCAR: ";

    cin>>n;

    cout<<endl;

}while(n<1);

//Ejecutamos un ciclo que se seguirá ejecutando hasta que se halle la cantidad pedida

while(i<n){

//Se guarda el numero que tenemos en numaux y se reinicializan los contadores que son requeridos

numaux=num;

numaux2=num;

cont_dig=0;

suma=0;

//Ciclo interno que calcula la cantidad de dígitos, guardando cada digito en un lugar 

do{

numaux=numaux/10;

cont_dig++;

}while(numaux>0);

//ciclo que aplica la formula digito^cont_dig a cada digito para saber la suma

for(int j=1;j<=cont_dig;j++){

digit=numaux2%10;

numaux2=numaux2/10;

suma+=pow(digit,cont_dig);

}

/*Si la suma y el num es igual es un numero narcisista asi que se le muestra al usuario

y ademas se le suma 1 a i entendiendo que se encontró un numero narcisista*/

if(suma==num){

cout<<num<<"\t";

i++;

}

/*Se suma 1 al numero para que siga aumentado ej: (1,2,3,4,5,...) asi se recorren los números

hasta que se tengan los narcisistas pedidos*/

num++;

}

cout<<endl<<endl;

system("PAUSE");

return 0;

}

No hay comentarios:

Publicar un comentario

Seguidor de línea con 2 sensores infrarrojos

Short del funcionamiento del carro seguidor de línea. Materiales Arduino uno Placa de expansión Arduino Uno - Motor shield 1 porta baterías ...