深信服笔试算法题0914

1.矿泉水
import math
x,a,b=5000,5,100
per_a=a/500 # 求单价
per_b=b/1500 # 求单价
ans=0
if per_a<=per_b: # 小瓶单价便宜,全买小瓶
    ans=int(math.ceil(x/500)*a)
else: # 大瓶单价便宜
    ans=(x//1500)*b # 先买够整数瓶
    res=x%1500
    ans+=min(math.ceil(res/500)*a,b) # 比较剩余部分,大瓶和小瓶哪个更划算
print(ans)

2.立方和
# 打表,先把立方能表示的都算出来
# 数据范围1,000,000,000,所以到1000就可以
num=int(input())
a=set()
for i in range(1,1000):
    for j in range(i,1000):
        a.add(pow(i,3)+pow(j,3))
if num in a:
    print('Yes')
else:
    print('No')


3.求环的个数
def change(nums):
    n=len(nums)
    cycles=0
    total=set()
    for i in range(1,n+1):
        if i not in total:
            a=set()
            while(i not in a): # 判定环
                total.add(i)
                a.add(i)
                i=nums[i-1]
            cycles+=1
    return cycles
ans=change(nums)
if ans==1: # 说明只有一个环,不需要修改元素
    print(0)
else: # 多于一个环,有几个环就修改几个元素
    print(ans)

#深信服笔试题#
全部评论
第一题我就是这么做,为什么A了0,输入输出有什么讲究吗,样例都过了
1 回复 分享
发布于 2022-09-14 21:07 浙江
请教一下,第三题为什么会想到这么做呢?考场上根本想不出...
点赞 回复 分享
发布于 2022-09-14 21:36 广东
这是什么岗的题
点赞 回复 分享
发布于 2022-09-14 23:15 天津
太厉害了,大佬面哪些了吗
点赞 回复 分享
发布于 2022-09-15 13:56 湖南
想问下笔试题型是啥呢,有选择吗
点赞 回复 分享
发布于 2022-09-16 00:00 北京

相关推荐

jack_miller:我给我们导员说我不在这里转正,可能没三方签了。导员说没事学校催的时候帮我想办法应付一下
点赞 评论 收藏
分享
3 18 评论
分享
牛客网
牛客企业服务