Programa de Python para calcular el número de ruta de vida

Dada una string de fecha de formato AAAAMMDD, nuestra tarea es calcular el número de ruta de vida.  Número de ruta de vida es el número obtenido por la suma de dígitos individuales de cada elemento repetidamente hasta un solo dígito, de string de fecha. Utilizado en predicciones numerológicas.

Ejemplos:

Entrada: test_str = «19970314»

Salida : 7

Explicación: 1 + 9 + 9 + 7 = 26, 2 + 6 = 8 [año]; 0 + 3 = 3 [mes]; 1 + 4 = 5 [día]. 5 + 3 + 8 = 16; 1 + 6 = 7.

Entrada: test_str = «19970104»

Salida : 4

Explicación: 1 + 9 + 9 + 7 = 26, 2 + 6 = 8 [año]; 0 + 1 = 1 [mes]; 0 + 4 = 4 [día]. 4 + 1 + 8 = 13; 1 + 3 = 4.

Método 1: Usar bucle

La lógica detrás de calcular esto es obtener una suma de cada dígito y realizar %10 en cada paso. De esta manera, los rizadores de resultados serán de un solo dígito si se trata de dos dígitos. 

Python3

# Python3 code to demonstrate working of
# Life Path Number
# Using loop
 
# initializing string
test_str = "19970314"
 
# printing original string
print("The original string is : " + str(test_str))
 
res = 0
for num in test_str:
    res += int(num)
     
    # modulation in case of 2 digit number
    if res > 9:
        res = res % 10 + res // 10
 
# printing result
print("Life Path Number  : " + str(res))

Producción:

The original string is : 19970314
Life Path Number  : 7

Complejidad de tiempo: O(n)

Complejidad espacial: O(n)

Método 2: Usar la recursividad

De manera similar a la anterior, la diferencia es que la función recursiva se usa para la modulación repetida en caso de que el recuento de dígitos sea mayor que 1.

Python3

# Python3 code to demonstrate working of
# Life Path Number
# Using recursion
 
# initializing string
test_str = "19970314"
 
# printing original string
print("The original string is : " + str(test_str))
 
# recursion function definition
def lpn(num): return num if num < 10 else lpn(num // 10 + num % 10)
 
# recursive function initial call
res = lpn(int(test_str))
 
# printing result
print("Life Path Number  : " + str(res))

Producción:

The original string is : 19970314
Life Path Number  : 7

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(n)

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *