Task 100_1. Овощная нарезка

Task 100_1. Овощная нарезка

UniLecs

Задача: вам даны N нарезанных колечек овощей: помидора (П) и огурца (О) разложенных на тарелке. В помидорах и огурцах вы не ограничены, поэтому любое нарезанное колечко может быть как огурцом так и помидором. Вам необходимо посчитать кол-во различных вариантов нарезок разложенных на тарелке. При сравнении тарелку можно поворачивать по кругу.

Входные данные: N - кол-во нарезанных колечек, где N больше 0 и меньше 100000

Вывод: кол-во различных вариантов нарезок разложенных на тарелке.

Пример: N = 3

Answer = 4.

Реализация:

По 2 балла получают:
  1. @tvolf, PHP
@tvolf, PHP

https://gist.github.com/tvolf/8f8570487771de0f5abe61165876df4c


2. @rustem_b, F#

@rustem_b, F#

https://gist.github.com/RustemB/9e1f5f9fd24f594d09fa9cebf2905393

Test:

https://dotnetfiddle.net/cE1cO6


3. @mikhail_01, Python - 3 балла за 2 решения, комментарии в gist файле

@mikhail_01, Python

https://gist.github.com/mikhail-01/0864d3c63fd9f81f2e5ea8a8e197e40b


4. @rulikkk, JS

@rulikkk, JS
@rulikkk, JS

https://repl.it/@rustemmustafin/UniLecs100


5. @LostInKadath, Python - Смотри разбор в gist файлах

@LostInKadath, Python

https://gist.github.com/LostInKadath/2ce584c29c651fcf37afd40e0eead8fc


6. @jinxonik, Python, Delphi - 3 балла за подробный разбор, два решения на Python, Delphi с учетом длинной арифметики. Супер!

Разбор:

http://telegra.ph/Reshenie-zadachi-ovoshchnaya-narezka-06-07

Source code, Python:

https://gist.github.com/jin-x/f83a7bad0569d0bb7ef3b3becbb4d030

Source code, Delphi:

https://gist.github.com/jin-x/a6b97330d027471d46556d6ead42b7bf

Test:

https://repl.it/repls/AdmiredLimeCloudcomputing


7. @dbond762, Python, GO

@dbond762, Python

https://gist.github.com/dbond762/3635228f571527daa1f3f3c4a03abe10

Test Python:

https://repl.it/repls/SoggyRosybrownNetworking

Test Go:

https://play.golang.org/p/cN_i5dDJNUj


8. Антон, Rust

Антон, Rust
Антон, Rust

https://gist.github.com/AnthonyMikh/fbe992fa0058a1f8611ccdd150b5730f

Test:

http://play.rust-lang.org/?gist=d87772b20080b4b869f1a77a4c31dec9&version=stable&mode=debug


9. @wi34rd, Python - довольно оригинальный подход к решению задачи, цитирую:

"Есть такой замечательный сайт — энциклопедия последовательностей (OEIS). Так вот, я вручную посчитал количество комбинаций для первых значений и вбил результаты на этом сайте, он мне и дал название последовательности (задачи). По ней я вышел на статью в википедии, в которой есть формула, по которой я и написал решение. Сам я в комбинаторике к сожалению не силен."

@wi34rd, Python

https://gist.github.com/wi34rd/80fbb083c79b6c1ced78a75a6f6297ef


1 балл:

10. Aleksei Kolosov, JS - алгоритм не работает для больших чисел (>1000)

Aleksei Kolosov, JS

https://gist.github.com/KolosovAO/c83deeeb22cb1caa4be62bd0d3539715


11. @httphate, Python - также алгоритм не работает при размерности больше 1000.

@httphate, Python

https://gist.github.com/504f383cbaee845efd26f1b0702d898a/af4290b7700df94058480f020d4d5b13

Report Page