[Python] Un código simple para encontrar la cantidad de narcisos

Sin más, ve directo al código:

def find_narcissistic_numbers(n):
    narcissistic_numbers = []
    for num in range(10**(n-1), 10**n):
        temp = num
        sum = 0
        while temp > 0:
            digit = temp % 10
            sum += digit ** n
            temp //= 10
        if sum == num:
            narcissistic_numbers.append(num)
    return narcissistic_numbers

while True:
    n=input("请输入您要寻找的水仙花数位数:")
    if n=="exit":
        break;
    elif n.isdigit():
        n=int(n);
        narcissistic_numbers = find_narcissistic_numbers(n)
        print(str(n) + "位水仙花数:", narcissistic_numbers)
    else:
        print("输入有误,请重新输入")

El código anterior implementa una función, que es encontrar el número de narcisos correspondiente al número de dígitos n e imprimirlo.

Primero, se define una función find_narcissistic_numbers(n), que acepta un parámetro n, que representa el número de números de narciso que se van a encontrar. Internamente, la función atraviesa todos los números desde 10 elevado a (n-1) hasta 10 elevado a n a través de un bucle, es decir, el rango es [10^(n-1), 10^n). Para cada número num, en un bucle interno, saque cada dígito de num, calcule la enésima potencia de cada dígito y acumule en la variable de suma. Finalmente, si la suma es igual a num, entonces num es un número de narciso y se agrega a la lista narcissistic_numbers. La función devuelve una lista del número de narcisos encontrados.

Lo que sigue es un bucle infinito que continuamente le pide al usuario que ingrese la cantidad de dígitos en la cantidad de narcisos que está buscando. El usuario puede ingresar un dígito n o escribir "salir" para salir del programa. El programa ejecuta una lógica diferente al juzgar la entrada del usuario:

  1. 1. Si el usuario ingresa "salir", el bucle saltará y el programa finalizará.
  2. 2. Si el usuario ingresa un número, determine si la entrada es un número puro llamando al método isdigit(), luego conviértalo a un tipo entero y llame a la función find_narcissistic_numbers(n) para encontrar el número narciso de los dígitos correspondientes. e imprimir el resultado.
  3. 3. Si la entrada del usuario no es "salir" ni un número, se le indicará que la entrada es incorrecta y será necesario volver a ingresarla.

A través del código anterior, el usuario puede ingresar repetidamente la cantidad de narcisos en diferentes dígitos para buscar y obtener el resultado correspondiente. Si los dígitos ingresados ​​no son válidos o no son un número, se realizará el procesamiento de error correspondiente.

Representaciones específicas:

Supongo que te gusta

Origin blog.csdn.net/zhangawei123/article/details/130910776
Recomendado
Clasificación