Autor
|
Tema: Numero narcisista (Leído 5,050 veces)
|
DamnSystem
Desconectado
Mensajes: 131
|
Llevo todo el dia con el ejercicio y no encuentro la forma. Ahora mismo consigo tener el 1 15 y el 153 pero no encuentro la maldita forma de cuando salga 15 % 10, y cuando salga 153 % 100, sin utilizar un if,
Podeis darme un empujón o alguna idea de como hacerlo¿?
// 22. Un número entero de n dígitos se dice que es narcisista si se puede obtener como la suma de // las potencias n-ésimas de cada uno de sus dígitos. Por ejemplo 153 y 8208 son números narcisistas // porque 153 = 13 + 53 + 33 (153 tiene 3 dígitos) y 8208 = 84 + 24 + 04 + 84 (8208 tiene 4 dígitos). // Construir un programa que, dado un número entero positivo, nos indique si el número es o no // narcisista. // Finalidad: Ejercitar los bucles. Dificultad Media. #include <iostream> #include <cmath> using namespace std; int main() { // Variables y constantes int numero_introducido = 0, numero_backup = 0, potencia = 0, resultado = 0, divisor = 100000, resultado_final = 0; // Entrada del programa do{ cout << "Introduce un numero: " << endl; cin >> numero_introducido; cin.clear(); }while(numero_introducido <= 0); // Resolucion del programa numero_backup = numero_introducido; while(numero_backup != 0){ numero_backup /= 10; potencia++; } numero_backup = numero_introducido; while(numero_backup != 0){ resultado = numero_backup / divisor; cout << resultado << endl; if(resultado != 0 && resultado > 0){ resultado_final = resultado_final + pow(resultado, potencia); } divisor /= 10; cout << resultado_final << endl; } return 0; }
|
|
|
En línea
|
<3 Stay Hungry, Stay Foolish <3
|
|
|
DamnSystem
Desconectado
Mensajes: 131
|
Nada conseguido después de toda la tarde mirando un código como lo hacia lo he conseguido entender: Paso código por si en un futuro alguien lo necesita como hoy yo. // 22. Un número entero de n dígitos se dice que es narcisista si se puede obtener como la suma de // las potencias n-ésimas de cada uno de sus dígitos. Por ejemplo 153 y 8208 son números narcisistas // porque 153 = 13 + 53 + 33 (153 tiene 3 dígitos) y 8208 = 84 + 24 + 04 + 84 (8208 tiene 4 dígitos). // Construir un programa que, dado un número entero positivo, nos indique si el número es o no // narcisista. // Finalidad: Ejercitar los bucles. Dificultad Media.
#include <iostream> #include <cmath> using namespace std;
int main() { // Variables y constantes int n, contador = 0, cn = 0, suma = 0, ultima_cifra = 0; //Entrada del programa do{ cout << "Introduce un numero: " << endl; cin >> n; }while(n <= 0); // Desarrollo del programa // Copia de n cn = n; // Saber el numero de cifras while(n > 0){ n /= 10; contador++; } // Volver a darle a n su valor incial n = cn; for(int i = 0; i < contador; i++){ ultima_cifra = n % 10; suma = suma + pow(1.0*ultima_cifra, contador); n /= 10; } n = cn; if(suma == n){ cout << "El numero es narcisista" << endl; } else{ cout << "No es narcisista" << endl; } return 0; }
|
|
|
En línea
|
<3 Stay Hungry, Stay Foolish <3
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[RETO] Comprobar si un numero dado es un numero de la suerte
« 1 2 ... 5 6 »
Programación Visual Basic
|
Karcrack
|
53
|
22,034
|
17 Agosto 2010, 23:58 pm
por Dessa
|
|
|
Convertidor de número literal a número real
Programación C/C++
|
david_BS
|
0
|
2,436
|
6 Mayo 2012, 21:34 pm
por david_BS
|
|
|
saber primer numero y ultimo numero [solucionado]
Bases de Datos
|
basickdagger
|
4
|
4,180
|
3 Septiembre 2014, 17:19 pm
por basickdagger
|
|
|
Aporte: escribir un numero e imprimir el numero en cadena
Programación C/C++
|
Mario Olivera
|
2
|
2,337
|
26 Abril 2015, 01:35 am
por Mario Olivera
|
|
|
Alguna manera de saber si un numero es narcisista sin utilizar el pow?
Programación C/C++
|
valrojo
|
6
|
3,482
|
2 Diciembre 2019, 10:08 am
por hacksilver
|
|