8.24蚂蚁笔试

💻题目:选择题20道左右(45分),编程题三题(10, 20, 25)
❓第1题:给定n,找满足2 * (a ** 2 + b ** 2) - 1 == n ** 2关系的a和b
这种题除非数学大佬一般人很难直接看出规律,先暴力枚举找规律,后面就会发现a = (n - 1) // 2,b=a+1
还有一个trick:用assert打测试样例

t = int(input())
for _ in range(t):
    n = int(input())
    if n == 1:
        print(-1)
    else:
        a = (n - 1) // 2
        b = a + 1
        print(a, b)
        assert 2 * (a ** 2 + b ** 2) - 1 == n ** 2, f"{a}, {b}, {n}"

❓第2题:跟着步骤来就行,牛客IDE函数补全比较慢,好在用的都是常规函数

❓第3题:不知道gcd是啥玩意,跳过了
#秋招笔面试记录#
全部评论
assert妙用
点赞 回复 分享
发布于 08-25 08:51 浙江

相关推荐

点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务