贝壳-算法笔试题

贝壳,笔试第一题 感觉挺有意思。。通过了 (其实是第二题不想写,第三题不会)

  1. 工资纳税金额 为 工资 的 最大因数(除自身外),工资可以拆为 任意份 (每份值必须 >1),每份单独纳税

input : 工资 x (1 < x < 10^9)

output :最少纳税值

解题关键是:质数 的 税是 1 ,所以 合数 拆为 质数之和;

又因 哥德巴赫猜想:任何大于5的奇数都是三个素数之和 (奇合数 纳税 最多为 3);

欧拉回信:每个大于2的偶数,都可表示为 两个质数之和 (故 偶数 纳税 为 2)

def isPrime(n):
    i = 2
    while i <= n ** 0.5:
        if n % i == 0:
            return False
        i += 1
    return True
def f(x):
    if isPrime(x):
        return 1
    if x % 2 == 0:
        return 2
    i = x - 1
    res = 0
    while i >= 2:
        if isPrime(i):
            res += 1
            x -= i
            i = x
            continue
        i -= 1
    return res

奇合数 纳税 最多为 3,为 2 时 一定是 拆为 2 和 x - 2,因为 奇 + 奇 = 偶,故需要有一个偶质数 即2
因此 函数 可简化为...

def f(x):
    if isPrime(x):
        return 1
    if x % 2 == 0 or isPrime(x-2):
        return 2
    return 3
#贝壳找房##笔试题目##题解#
全部评论
工资这道题我是转换为,一个数n最少可用几个质数表示。
点赞 回复
分享
发布于 2018-10-15 21:11
当时没想到…我是想着按3到num那样拆,但具体每次拆分后所有情况没想出怎么取该拆分所以情况
点赞 回复
分享
发布于 2018-10-15 21:18
联想
校招火热招聘中
官网直投
楼主66666
点赞 回复
分享
发布于 2018-10-15 21:20
哎~~~忘记了哥德巴赫猜想这回事了~~~
点赞 回复
分享
发布于 2018-10-15 21:22
楼主,你输入1355,输出是4,但是我用我的方法输出是3,求问怎么回事。。 def init(n):     prim=[True for i in range(n)]     prim[0]=False     for i in range(2,n):         if prim[i]:             k=2             while(k*i<n):                 prim[k*i]=False                 k+=1     return prim      #n=int(input()) n=1355 prim=init(n) trans=[0 for i in range(n+1)] for i in range(1,n+1):     trans[i]=1     k=2     while k<i and i%k!=0:         k+=1     if i%k==0:         trans[i]=i//k dp=[0 for i in range(n+1)] dp[2]=1 for i in range(3,n+1):     dp[i]=trans[i]     for k in range(2,i-1):         if dp[i-k]+trans[k]<dp[i]:             dp[i]=dp[i-k]+trans[k] print(dp[n]) 1355可分为3+31+1321,这是仨质数之和呀。。。
点赞 回复
分享
发布于 2018-10-15 22:31
第二题大家怎么做的 dfs超时
点赞 回复
分享
发布于 2018-10-15 22:40

相关推荐

(持续更新,到拿到offer为止,但千万别让我更到秋招。。。)提前发个第三周总结,本来应该在周日总结的,但是我想这接下来几天放清明应该也没人约笔试面试,就提前写了个总结。第一周:1测评&nbsp;&nbsp;2笔试&nbsp;&nbsp;0面试第二周:2测评&nbsp;&nbsp;3笔试&nbsp;&nbsp;1腾讯面试已挂&nbsp;&nbsp;1笔试完直接进人才池第三周:2测评&nbsp;&nbsp;1笔试&nbsp;&nbsp;1美团面试估计马上挂腾讯:复活赛没打赢,只答出一半左右,算法题思路对了但是跑起来报错,面评估计烂了美团:感觉应该是挂的样子,基本没问什么问题,都是我在那介绍阿里云:第一志愿简历挂,又给我开了第二志愿携程:笔试a的少,2.5道进人才池OPPO、快手、虾皮、联想、小米、B站、360等:还在筛简历这周和群友交流有一些感悟吧,一个是投的早确实面试机会多点并且也快点,还有一个是放平心态继续坚持吧,一位群友说他面了两小时并且面的还可以还是挂了,确实让人很难崩。相对来说我应该算是投的比较晚的,并且Boss上投出去十多份简历都没约面试,只能面大厂,目前只面了两次。也吃到恶果了,我在腾讯那边的简历估计黑成煤炭了,至少CSIG部门里面是,不知道秋招还有没有机会进鹅,至少实习是不敢想了。明天清明再投一波简历,希望下一波有戏。这两天晚上休息一下先。。。
投递美团等公司10个岗位
点赞 评论 收藏
转发
👉🏻基础1.&nbsp;Java&nbsp;的&nbsp;HashMap&nbsp;底层数据结构2.&nbsp;ConcurrentHashMap&nbsp;是怎么保证线程安全的3.&nbsp;Java&nbsp;锁框架介绍一下&nbsp;AQS4.&nbsp;在编程过程中实际遇到过的并发安全问题5.&nbsp;Java&nbsp;垃圾回收是怎么做的6.&nbsp;Spring&nbsp;的核心思想&nbsp;IOC&nbsp;和&nbsp;AOP👉🏻项目7.&nbsp;网关项目做了什么介绍一下8.&nbsp;Netty&nbsp;NIO&nbsp;的&nbsp;select、poll&nbsp;和&nbsp;epoll9.&nbsp;同步、异步、阻塞和非阻塞怎么理解10.&nbsp;还有个项目做了什么介绍一下11.&nbsp;介绍一下项目里面时延上报是怎么做的12.&nbsp;聊聊为什么说项目里有可复用设计👉🏻实习13.&nbsp;介绍一下实习的时候主要的工作14.&nbsp;你这边的流量打压策略和花钱投放的流量策略是怎么共同生效的手写15.&nbsp;写一下策略模式一面问的不难,我感觉是过了,然而跳了复试界面后一直不约面,遂凉,然后在牛客刷到面同&nbsp;BU&nbsp;的同学在我一面那天二面,流程终止那天&nbsp;OC,感觉被排序掉了。在这之后被鹅捞了四次,两次运营开发(听说好像也是开发,只是对内,但我以为是运维),两次客户端开发,都拒面了。实习这个地方压力太大,没啥精力被鹅这种吊着人的面试折磨,准备佛了。今天写了淘天笔试,周五下午一面,发个面经攒点人品。刷到同学发&nbsp;mygo&nbsp;相关等鹅oc,而我一边在手子电商10105&nbsp;回去(好处是有实打实的产出)还要刷算法题备战面试,只能说找实习从没开心过猛猛刷&nbsp;codefun&nbsp;去了
点赞 评论 收藏
转发
点赞 10 评论
分享
牛客网
牛客企业服务