2023-09-16 友塔笔试
Q1
题目描述
在一个大小1000*1000的地图中,有若干的静止物体.现有一个相机,相机视野为长宽100*100的正方形.移动相机坐标(x,y)(50 <= x,y <= 950, 相机坐标处在相机视野中心),会观察到不同数量的物体.(相机视野边缘的物体也算,比如相机在(50,50),可以观察到(0,0)是否有物体)
求问同时出现在相机视野里的物体数量最多是多少?
代码: AC 100%
1 | from typing import List |
Q2
题目描述
在给定的4*4海滩中,有3种不同类型的章鱼,攻击不同类型的章鱼会得到不同的奖励.玩家可以在任意点开始,连接间隔不超过1的相同类型的章鱼(可以对角线连接),不可以重复连接.3种类型的章鱼使用1/2/3表示,其基本奖励为1/3/5.总奖励=连接章鱼数 * 该类型章鱼基本奖励.求可以获得的最大奖励数量.
代码
1 | from typing import List |
Q3
题目描述
现代游戏程序通常使用浮点数来表示实数,但各个软硬件平台并没有严格遵守浮点数标准,导致浮点数运算结果在不同平台难以做到一致.这对于依赖计算确定性的游戏有较大影响,所以我们需要实现一种定点数的运算方案来确保不同平台上计算结果的一致性.
定点数的表示原理:
如图所示定点数的结构,采用22.10定点数格式,即22位有符号整数,10位小数.
和浮点数类似,符号位S表示定点数的正负值,1表示定点数是负值,0表示定点数是正值.
要求模拟定点数的乘法运算.
输入
输入一个32个字符的字符串num1表示定点数a.
然后输入一个32个字符的字符串num2表示定点数b.
输出
返回一个2维字符串数组
数组第一个字符串是32位字符串表示的定点数格式的a*b的乘积.
第二个字符串是这个积的定点数换算为十进制数的结果.
说明
乘法运算后定点数小数部分超过定点数精度的位数舍弃.
乘法运算后乘积定点数转为十进制后,十进制数要求保留定点数的全部精度,如果定点数小数部分为0,十进制数保留一位小数.
乘法运算后定点数整数部分溢出后,整数部分变为其能表示的最大值.
【TODO】示例
代码
1 | from typing import List |
Q4
题目描述
小魔法师在迷宫中遇到了n个法阵排成一排,每个法阵上都有一个自然数nums[i].每次激活一个法阵可以得到等于该法阵和它相邻两个法阵上数字乘积的法力值,而后这个法阵就会消失,它左右的两个法阵变为相邻,问将所有法阵都激活的话,小魔法师最多可以获得多少法力值?(0 <= n <= 500, 0 <= nums[i] <= 100)
示例
输入:[3,1,5,8]
输出:167
说明:
- 法阵:[3,1,5,8] -> [3,5,8] -> [3,8] -> [8]
- 激活:1 -> 5 -> 3 -> 8
- 法力值:3*1*5 + 3*5*8 + 3*8 + 8 = 167
代码
1 | from typing import List |