Наш найкращий друг почав збирати пазли й хоче створити докладний каталог своєї колекції, записуючи таку інформацію, як-от загальна кількість деталей, кількість рядків і стовпців, кількість крайових і внутрішніх деталей, співвідношення сторін і формат пазла. Навіть якщо поєднати наші зусилля, на складання одного пазла на тисячу деталей іде кілька годин, а потім нам усе ще доведеться вручну порахувати рядки та стовпці й обчислити решту чисел. Ще більші пазли з тисячами деталей тепер здаються доволі страшними. Ми вигукуємо: «Має бути кращий спосіб!» і сідаємо за компʼютер, щоб розвʼязати цю проблему.
Маючи часткову інформацію про пазл, додайте частини, яких не вистачає.
Якщо інформації недостатньо, щоб доповнити деталі, або якщо надані частини суперечать одна одній, потрібно повідомити користувача.
Повна інформація про пазл містить такі частини:
pieces: загальна кількість частинborder: кількість крайових частинinside: кількість внутрішніх (не крайових) частинrows: кількість рядківcolumns: кількість стовпцівaspectRatio: співвідношення сторін (стовпців до рядків)format: формат пазла, який може бути portrait, square або landscape
У цій вправі ми можемо припустити, що частини квадратні, тож формат можна вивести зі співвідношення сторін:
portrait
square
landscape
Портретний пазл із 6 частин, усі з яких крайові, а внутрішніх немає. У ньому 3 рядки та 2 стовпці. Співвідношення сторін становить 1.5 (3/2).
Квадратний пазл із 9 частин, усі з яких крайові, крім однієї в центрі, яка є внутрішньою. У ньому 3 рядки та 3 стовпці. Співвідношення сторін становить 1 (3/3).
Альбомний пазл із 12 частин, 10 з яких крайові, а 2 внутрішні. У ньому 3 рядки та 4 стовпці. Співвідношення сторін становить 1.333333... (4/3).
Зареєструйтеся на Exercism, щоб вивчати й опановувати WebAssembly, а також 87 вправ та справжнє наставництво від людей, і все це безкоштовно.