轨道
/
PowerShell
PowerShell
/
练习
/
拼凑起来
拼凑起来

拼凑起来

中等

简介

你最好的朋友开始收集拼图了,想给自己的收藏建一份详细的目录,记录拼图块总数、行数和列数、边缘拼块和内部拼块的数量、长宽比以及拼图格式等信息。

即使你们俩合力,拼好一幅 1000 块的拼图也要花上好几个小时,之后还得手动数出行数和列数,再算出其余的数字。

那些有数千块的更大拼图,现在看来真让人望而生畏。

“一定有更好的办法!”你感叹道,然后在电脑前坐下,着手解决这个问题。

说明

给定一幅拼图的部分信息,补全缺失的部分。

如果这些信息不足以补全细节,或者给出的部分相互矛盾,就应当通知用户。

拼图的完整信息包含以下几个部分:

  • pieces:拼图块总数
  • border:边缘块的数量
  • inside:内部块(非边缘块)的数量
  • rows:行数
  • columns:列数
  • aspectRatio:列数与行数的宽高比
  • format:拼图格式,可以是 portrait、square 或 landscape

在本练习中,你可以假设每块拼图都是正方形的,这样格式就能从宽高比推导出来:

  • 如果宽高比小于 1,就是 portrait
  • 如果等于 1,就是 square
  • 如果大于 1,就是 landscape

三个例子

Portrait

一幅 portrait 拼图,共 6 块,全部是边缘块,没有内部块。 它有 2 列 3 行。 宽高比是 0.666666...(2/3)。

一幅 2×3 的拼图

Square

一幅 square 拼图,共 9 块,除正中间那一块是内部块以外,其余全部是边缘块。 它有 3 列 3 行。 宽高比是 1.0(3/3)。

一幅 3×3 的拼图

Landscape

一幅 landscape 拼图,共 12 块,其中 10 块是边缘块,2 块是内部块。 它有 4 列 3 行。 宽高比是 1.333333...(4/3)。

一幅 4×3 的拼图

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
PowerShell Exercism

准备好开始 拼凑起来 了吗?

注册 Exercism,借助 136 个练习 和真人导师指导,学习并掌握 PowerShell,全部免费。