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