Pull to refresh

Comments 6

Статья интересная, надеюсь будет ещё.
Как-то избыточно код выглядит.
Предлагаю для развлечения решить максимально компактно на других языках программирования:

на Perl:
print eval join '+',grep { !($_ 3 && $_ 5) } 1..999;
спасибо, в следующий раз рассмотрю задачу посерьезнее, может к тому времени и новая доза появится.
ну да, по сути функции те же, только называются в перле короче. =)
Что мне в верхнем коде нравится, что он читается в ту же сторону, в которую и выполняется, благодаря |>, хотя можно было бы написать и что-то в этом роде:
printfn ("%d") List.fold_left (+) 0 List.filter (fun x -> x%3=0 or x%5=0) [1..999]
на Руби:
(0..999).select { |x| (x % 3 == ) or (x % 5 == ) }.reduce(:+)
если мне не изменяет память то в руби нету reduce. есть inject.

(0..999).select { |x| (x % 3 == 0) or (x % 5 == 0) }.inject {|s,v| s+v}
Сумма х таких, что х принадлежит [1; 999] и делится на 3 или 5 без остатка.
sum [x | x <- [1..999], (x `mod` 3 == ) || (x `mod` 5 == )]

Как сделать 0 видимым? Внутри тега font он исчезает
System.Console.WriteLine( $[1..999].FoldLeft(0, (x, acc) => if( (x%3)*(x%5) == 0) acc+x else acc) );
Это Nemerle.
Sign up to leave a comment.

Articles