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