作业帮算法笔试0921
题目一:最少完全平方数之和
给定一个正整数 ,请找出最少个数的完全平方数,使得这些完全平方数的和等于
。
完全平方数是指一个整数乘以自己,例如 等。若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。例如:1、4、9、16 都是完全平方数,但 2、3、5、8、11 等不是。
数据范围:
输入描述:仅一行,输入一个正整数 。
输出描述:按题目要求输出完全平方数之和为 的最少个数。
示例 1:
输入:5
输出:2
(因为 ,共两个完全平方数)
题目二:矩阵层旋转
小红拿到了一个 的矩阵,她希望将矩阵的每一层都顺时针旋转一下。你能帮帮她吗?
我们定义矩阵的“层数”是由外到内的。例如,对于一个 的矩阵:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
共有 3 层(最外层、中间层、中心点)。每一层顺时针旋转后,例如最外层变为:
6 1 2 3 4
...
(具体旋转方式需根据层进行处理)
任务:实现将 矩阵的每一层顺时针旋转一次的功能。
题目三:切割数字使和为偶数
游游拿到了一个正整数,她希望将它切割成两部分,使得它们的和为偶数。游游想知道有多少种合法的切割方案?
注意:切割后的正整数允许出现前导零。
输入描述:一个正整数,大小不超过 (即可能是一个非常大的数,字符串形式输入)。
输出描述:一个整数,代表合法的切割方案数。
示例 1:
输入:103
输出:1
说明:
- 切割成
1 + 03 = 4
是合法的(因为 4 是偶数)。 - 切割成
10 + 3 = 13
是奇数,不符合要求。 - 所以只有 1 种合法方案。