C ++ implementa la estructura de bucle del número de narciso

¿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;

}

resultado de la operación

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_53545309/article/details/132417170
Recomendado
Clasificación