Informática, perguntado por DarkSkull10, 1 ano atrás

Em Python: Nós vamos definir o superdígito de um inteiro x conforme as seguintes regras:

Se x possui apenas 1 dígito, então o superdígito é x.
Caso contrário, o super dígito de x é igual ao superdígito da soma dos dígitos de x.
Por exemplo, o superdígito de 9875 é calculado como:

superdígito (9875)
= superdígito (9+8+7+5)
= superdígito (29)
= superdígito (2+9)
= superdígito (11)
= superdígito (1 + 1)
= superdígito (2)
= 2

Sua missão é calcular o superdígito de um número x.
Você receberá dois números: n e k.
x é construído fazendo k concatenações de n.
Por exemplo,
se n = 123 e k = 4
então:
x = 123123123123


Formato de entrada

A entrada consiste de dois inteiros n e k separados por espaço.

Considere:

1 <= n <= 10^100000
1 <= k <= 10^5
Formato de saída

Uma única linha contendo o superdígito de x.

Soluções para a tarefa

Respondido por Usuário anônimo
4
Boa noite!

Segue abaixo código completo:

def super_digito(x):
    digitos = list(map(int, list(str(x))))
    superdigito = sum(digitos)
    if superdigito > 10:
        return super_digito(superdigito)
    else:
        return superdigito
   
def main():
    n, k = map(int, input('Entre com os inteiros n e k: ').split())
    x = int(str(n) * k)
    print(super_digito(x))

if __name__ == '__main__':
    main()

Espero ter ajudado!
Respondido por reuabg
0

O seguinte programa cria a função concatenar_numeros(n, k), que concatena o número n digitado k vezes. Na sequência, a função superdigito(n) verifica se o tamanho do número é maior que 1 dígito. Enquanto a condição for verdadeira, os dígitos do número são somados, e o valor é armazenado na variável number. Quando a variável possuir um algarismo, a iteração é interrompida e o superdígito é retornado.

O que é um programa?

Um programa é uma sequência de instruções que realizam uma determinada tarefa.

O seguinte programa cria a função concatenar_numeros(n, k), que concatena o número n digitado k vezes. Na sequência, a função superdigito(n) verifica se o tamanho do número é maior que 1 dígito. Enquanto a condição for verdadeira, os dígitos do número são somados, e o valor é armazenado na variável number. Quando a variável possuir um algarismo, a iteração é interrompida e o superdígito é retornado.

from itertools import accumulate

def concatenar_numeros(n: int, k: int) -> int:

   n_as_str = str(n)

   concatenacao = []

   for _ in range(k):

       concatenacao.append(n_as_str)

   return int("".join(concatenacao))

def superdigito(n: int) -> int:

   number = n

   while(len(str(number)) > 1):

       number_as_str = str(number)

       sum_of_digits = list(accumulate([int(_) for _ in number_as_str]))

       number = sum_of_digits[-1]

       print(number)

   return number

if __name__ == "__main__":

   n = int(input("Valor de n: "))

   k = int(input("Valor de k: "))

   x = concatenar_numeros(n, k)

   sd = superdigito(x)

   print(f"Superdígito de {x}: {sd}")

Para aprender mais sobre programas, acesse:

brainly.com.br/tarefa/19885120

#SPJ2

Anexos:
Perguntas interessantes