蚂蚁金服 9.22 笔试
编程题
第一题挺简单的,双for暴力可过。
第二题求满足条件的子字符串个数,可以用双指针+比较过,暴力不知道可以不,但是注意要把字符串转为long类型而不是int,再比较。
第三题给一个数n,要求输出一个n*n矩阵,使得每个2×2的子矩阵之和为奇数,如果没有这种矩阵就输出-1,不太会,以前碰到过,但是我忘了咋做,最后直接输出-1也过了22%哈哈哈,有没有大佬教教我,感谢。
第一题挺简单的,双for暴力可过。
第二题求满足条件的子字符串个数,可以用双指针+比较过,暴力不知道可以不,但是注意要把字符串转为long类型而不是int,再比较。
第三题给一个数n,要求输出一个n*n矩阵,使得每个2×2的子矩阵之和为奇数,如果没有这种矩阵就输出-1,不太会,以前碰到过,但是我忘了咋做,最后直接输出-1也过了22%哈哈哈,有没有大佬教教我,感谢。
全部评论
现在几乎都是三道编程题啊
相关推荐
查看1道真题和解析 点赞 评论 收藏
分享
2025-12-12 18:38
福州工商学院 产品经理 思念SiN:你这里没有通过的主要原因应该是计算平均分数的时候,在你贴的代码的第23行:
```c
b[i]=(sum-max-min)/(m-2);
```
等式的右边实际上是两个`int`类型的变量在做除法,C语言里面得到的结果会是这个除法的整数部分,余数部分被舍弃了,也不会自动变成浮点数去做除法。所以虽然你使用了`b[i]`这个浮点数去接收结果,但是等式右边除法是先得到了一个整数,然后再被转换为浮点数再赋值给了`b[i]`。你可以按下面这样,在做除法之前,先进行类型转换,就能得到期望的结果:
```c
b[i]=(float)(sum-max-min)/(float)(m-2);
```
点赞 评论 收藏
分享

