Skip to content

Instantly share code, notes, and snippets.

@marcoonroad
Last active August 29, 2015 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marcoonroad/6fd821b38cbaf5c7e338 to your computer and use it in GitHub Desktop.
Save marcoonroad/6fd821b38cbaf5c7e338 to your computer and use it in GitHub Desktop.
Lento porém elegante, tente algo como "$ perl6 ThisScript.pl6 15" no terminal...
#!/usr/bin/perl6
use v6;
sub MAIN ($x) {
([+] ([+] ((^2, * + * ... *).grep(* %% 2))[^$x]).comb).say;
}
# [DESAFIO / LANGUAGE WAR]
#
# Implemente um programa na sua linguagem favorita onde o usuário digita um número x, e o
# programa calcula o somatório dos x primeiros números pares da sequência fibonacci, e imprime a
# soma dos algarismos desse número.
#
# Por exemplo, quando x = 5, a resposta é 17, pois:
#
# 1. A sequência fibonacci é 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,...
# 2. Os 5 primeiros números pares são 0, 2, 8 e 34, 144.
# 3. O somatório disso é 188.
# 4. Somando os algarismos, 1+8+8 = 17
#
# Rode o programa para o caso X = 100000 usando o comando `echo 100000 | time ./programa`.
# Confira se a resposta é 282042 e poste aqui o código fonte e o tempo de execução. Ganha a
# linguagem que tiver o código mais elegante e rápido.
# End of script
@marcoonroad
Copy link
Author

TODO:
Otimizar o código com Gather/Take, Recursive Patterns, etc...

@marcoonroad
Copy link
Author

TODO [novamente]:
Tentar otimizar com Feeds, Junctions, Meta-Operators, etc...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment