Página 1 de 1

Mudança de bases

MensagemEnviado: Terça Jul 13, 2010 5:49 pm
por Bruno Oliveira
Este é mais um do PE, que já limpei, mas que acho relativamente interessante, pois permite usar built-in functions pouco conhecidas (era desconhecida para mim, pelo menos :lol: )

The decimal number, 585 = 1001001001_{2} (binary), is palindromic in both bases.

Find the sum of all numbers, less than one million, which are palindromic in base 10 and base 2.

(Please note that the palindromic number, in either base, may not include leading zeros.)

Novamente, deixo aqui o desafio de o fazerem em apenas uma linha!! :mock:

Agora até eu estou viciado em one-liners...

NOTA: O aviso dentro de parentesis, serve apenas para realizar uma ligeira optimização sobre o código, mas não têm de se preocupar com os leading zeroes no vosso código...

Re: Mudança de bases

MensagemEnviado: Quinta Jul 15, 2010 10:35 pm
por Bruno Oliveira
Estou a ver que ninguém gosta deste problema... :P

Aqui fica o meu primeiro one-liner postado no fórum:

Código: Seleccionar Todos
print reduce(lambda x,y: x+y, [x for x in range(1,1000000) if str(x) == str(x)[::-1] and bin(x)[2:] == str(bin(x)[2:])[::-1]])


:)

Re: Mudança de bases

MensagemEnviado: Sexta Jul 16, 2010 10:43 pm
por jap
Já és um ás dos one-liners! :hands:

Re: Mudança de bases

MensagemEnviado: Sexta Jul 16, 2010 11:19 pm
por Bruno Oliveira
Obrigado prof. tenho andado a treinar para melhorar a minha programação funcional e começo a perceber melhor o conceito por trás disto...

Como se costuma dizer: "Água mole em pedra dura tanto bate até que fura." :P

Por acaso o prof, não tem na sua colectânea de problemas, mais alguns do género dos números automórficos? :roll:

Esses poderiam ser uma boa maneira de treinar funcional (aliás, já resolvi os da persistência multiplicativa e o dos automórficos numa só linha) :wink: