Solved 008: php, ruby

This commit is contained in:
FuryFire 2012-03-07 09:14:05 +01:00
parent 57cc17348f
commit 43cdbe80cb
4 changed files with 57 additions and 0 deletions

16
ProjectEuler/008/desc.yml Normal file

@ -0,0 +1,16 @@
title: Discover the largest product of five consecutive digits in the 1000-digit number.
url: http://projecteuler.net/problem=8
desc: |
Find the greatest product of five consecutive digits in the 1000-digit number.
solution: |
Bruteforce (Unless someone found a smarter way)
solutions:
solve.php:
desc: Expects the haystack as stdin with optional newlines
language: php
solve.rb:
desc: Expects the haystack as stdin with optional newlines
language: ruby

20
ProjectEuler/008/input Normal file

@ -0,0 +1,20 @@
73167176531330624919225119674426574742355349194934
96983520312774506326239578318016984801869478851843
85861560789112949495459501737958331952853208805511
12540698747158523863050715693290963295227443043557
66896648950445244523161731856403098711121722383113
62229893423380308135336276614282806444486645238749
30358907296290491560440772390713810515859307960866
70172427121883998797908792274921901699720888093776
65727333001053367881220235421809751254540594752243
52584907711670556013604839586446706324415722155397
53697817977846174064955149290862569321978468622482
83972241375657056057490261407972968652414535100474
82166370484403199890008895243450658541227588666881
16427171479924442928230863465674813919123162824586
17866458359124566529476545682848912883142607690042
24219022671055626321111109370544217506941658960408
07198403850962455444362981230987879927244284909188
84580156166097919133875499200524063689912560717606
05886116467109405077541002256983155200055935729725
71636269561882670428252483600823257530420752963450

@ -0,0 +1,8 @@
<?php
$haystack = str_replace(array('\n','\r\n'),'',file_get_contents('php://stdin'));
for($i=0;$i<1000-4;$i++) {
$cmp = $haystack[$i] * $haystack[$i+1] * $haystack[$i+2] * $haystack[$i+3] * $haystack[$i+4];
$max = ($cmp > $max) ? $cmp : $max;
}
echo $max;

13
ProjectEuler/008/solve.rb Normal file

@ -0,0 +1,13 @@
haystack = ''
ARGF.lines("\n") do |line|
haystack << line.strip
end
max = 0
(1..(1000-4)).each do |index|
compare = haystack[index].to_i * haystack[index+1].to_i * haystack[index+2].to_i * haystack[index+3].to_i * haystack[index+4].to_i
if(compare > max)
max = compare
end
end
puts max