Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

msmsms

fazer corresponder digitos a variaveis

Mensagens Recomendadas

msmsms

# multiplicar digitos de um numero
n = 123
n = str(123)
s = a * b * c
for elem in n:

como faço para os digitos serem iguais ás variaveis

pensei antes de mais em colocar o inteiro para string de forma a poder soltar cada elemento

depois fazer um for para devolver cada digito em separado e como faço agora para fazer a correspondencia?

Editado por msmsms

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ffunenga

n = 12345

# começa-se com um acumulador unitário
mul = 1.0 if n else 0.0

# e depois vai-se avançando pelos digitos do número inicial
for digit in str(n): mul *= float(digit)

print mul

No entanto convem ter cuidado com o tamanho do número inicial, se for muito grande, esta operação pode vir a ser pesada.

Se conseguires meter os digitos do número inicial numa lista talvez te safes melhor com uma solução deste género:

array = [1,2,3,4]
reduce(lambda a,b: a*b, array)

Editado por ffunenga

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NuGuN

Boas,

para completar o código do ffunenga

n = 1234
array = list( str(n) )

aqui o que faz o list()

Cumps!

Editado por NuGuN

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

Que complicação! E que tal simplificar e utilizar um pouco de matemática?

def multiplica(n=0):
   mult = 1.0 if n else 0.0
   while n > 10:
       mult *= n % 10
       n = n // 10
   return mult

Teste no IDLE:

>>> multiplica(123)
6.0

@msmsms: não tentes atribuir cada dígito a uma variável. Isso é impraticável e impensável.

Editado por thoga31

Knowledge is free! | Occasional Fortnite player

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.