Здравствуйте, Димчанский, Вы писали:
Д>Пинайте сколько угодно, приемлю любую критику.
Я нисколько не отношусь к ФЯ, стало просто интересно тоже попробовать чё-нить написать...
Задание 4 у меня вроде проще получилось, без строк, с рекурсией, на глаз с такой же скоростью:
let rec dig (v, i) = if i = 0 then v % 10 else dig(v/10, i-1)
let isPoly x =
let rec count (v, n) =
if v < 10 then n
else count (v/10, n+1)
let c = count (x, 0)
Seq.for_all (fun i -> dig(x, i) = dig(x, c-i)) { 0 .. c / 2 }
let problem4 min max =
seq { for i in max .. -1 .. min do
for j in i .. -1 .. min do
yield (i * j) }
|> Seq.filter isPoly
|> Seq.max