¿Qué son los números de narciso?
El número narcisista (Número narcisista), también conocido como número narcisista, Número de Armstrong (Número de Armstrong), es un número de n dígitos y la suma de las enésimas potencias de los números de cada dígito es igual a sí mismo. Por ejemplo, un número de narciso de 3 dígitos satisface las siguientes condiciones: abc = a 3 + b 3 + c 3 abc = a^3 + b^3 + c^3ab c=a3+b3+C3 .
En otras palabras, si un número de n dígitos satisface: d 1 n + d 2 n + … + dnn = número d_1^n + d_2^n + \ldots + d_n^n = \text{número}d1norte+d2norte+…+dnortenorte=número,其中d 1 , d 2 , … , dn d_1, d_2, \ldots, d_nd1,d2,…,dnortees el número en cada dígito de este número, entonces este número es un número de narciso.
Aquí hay algunos ejemplos de números de narciso:
153 = 1^3 + 5^3 + 3^3
370 = 3^3 + 7^3 + 0^3
371 = 3^3 + 7^3 + 1^3
407 = 4^3 + 0^3 + 7^3
¿Queremos usar do while para juzgar el número de 100-1000 narcisos?
sintaxis de hacer mientras
//hacer {declaración de bucle} while (condición de bucle);
A diferencia de while, la declaración de bucle se ejecutará primero y se juzgará la condición del bucle.
Ejecute do primero, luego ejecute while, si se cumple la condición, continúe haciendo, si no, salte del bucle
La realización concreta del número del narciso.
#include<iostream>
using namespace std;
int main()
{
//水仙花数是指一个三位数,他的每个位上的数字的三次幂之和是它本身
//例如: 1^3+5^3+3^3= 153
//请用 do while 语句,求出所有3位数中的水仙花数
int num = 100;
int a = 0;
int b = 0;
int c =0;
do {
a = num % 10; //个位
c = num / 100; //百位
b = (num/10) % 10; //十位
if (num == a*a*a + b*b*b + c*c*c)
{
cout << num << endl;
}
num++;
} while (num < 1000);
system("pause");
return 0;
}