本周早些时候,学弟给我发了一道网易的笔试题,饥饿的小易,感觉有点意思~分享给大家

题目描述:

小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃。最开始小易在一个初始位置x_0。对于小易所处的当前位置x,他只能通过神秘的力量移动到 4 * x + 3或者c。因为使用神秘力量要耗费太多体力,所以它只能使用神秘力量最多100,000次。贝壳总生长在能被1,000,000,007整除的位置(比如:位置0,位置1,000,000,007,位置2,000,000,014等)。小易需要你帮忙计算最少需要使用多少次神秘力量就能吃到贝壳。

输入:

输入一个初始位置x_0,范围在1到1,000,000,006

输出:

输出小易最少需要使用神秘力量的次数,如果使用次数使用完还没找到贝壳,则输出-1

乍一看这道题,是有点懵逼的,如果用暴力法来做100%超时。以我的经验来看估计这是一道数学问题,我们就分析一下题目描述中的关键信息吧,看看有没有什么玄机。小章鱼只能移动到4 * x + 3或者8 * x + 7,那我们认为f(x)=4 * x + 3, g(x)=8 * x + 7。关键部分到了,我瞪俩眼睛观察了好久,终于发现

1. f(g(x)) = g(f(x))  我们可以认为最终小章鱼的移动路线是可以用fg表示的字符串,而且fg可以随意调换位置~所以说腻,ffggffgf=fffffggg

2. f(f(f(x)))=g(g(x)) 也就是说,每做3次f移动等于2次g移动,那么我们可以将结果的fg串中每3个f换成2个g,那么结果的fg串是一个最多包含2个f的fg串~所以说腻,fffffggg=ffggggg

现在解题思路就很清晰了,以0,f,ff为起始位置,每次都移动g,看什么时候能移动到能被1000000007整除的位置。代码如下:

#!/usr/bin/python#-*- coding: utf-8 -*-

defget_result(n):

l_= [n, n * 4 + 3, 16 * n + 15]for j, m inenumerate(l_):for i in range(100000):

m= (8 * m + 7) % 1000000007

if m ==0:return i+j+1

return -1

if __name__ == '__main__':

n=input()print get_result(n)

好啦,这道题到此已经完美解决啦~

希望对大家有所帮助~

网易python笔试题_python 饥饿的小易(网易笔试题)相关推荐

  1. 饥饿的小易、另类加法

    1.用命令方式运行以下代码的运行结果是(C) public class f{public static void main(String[] args){String foo1 = args[1];S ...

  2. 求解解救amaze问题求解饥饿的小易问题

    求解饥饿的小易问题 题目描述 小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃.最开始小易在一个初始位置x_0.对于小易所处的当前位置x,他只能通过神秘的力量移动到 4 * x + 3或者8 * ...

  3. python简述题_python的一些基本概念知识和面试题

    对于机器学习算法工程师而言,Python是不可或缺的语言,它的优美与简洁令人无法自拔.那么你了解过Python编程面试题吗?从Python基础到网页爬虫你是否能全方位Hold住?今天,机器之心为读者们 ...

  4. mysql题库随机抽取试题_Python从MySQL数据库中面抽取试题,生成试卷

    一.背景 本文章主要是分享如何使用Python从MySQL数据库中面抽取试题,生成的试卷每一份都不一样. 二.准备工作 1.安装Python3 2.安装库 pip install python-doc ...

  5. 饥饿的小易(枚举+广度优先遍历(BFS))

    题目描述 小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃.最开始小易在一个初始位置x_0.对于小易所处的当前位置x,他只能通过神秘的力量移动到 4 * x + 3或者8 * x + 7.因为使 ...

  6. 饥饿的小易(分枝限界法)

    一. 程序题(共1题,100分) (程序题) 小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃.最开始小易在一个初始位置x_0.对于小易所处的当前位置x,他只能通过神秘的力量移动到 4 * x ...

  7. python方法测试_python 测试常用小方法

    python 测试常用的小方法 def xia_to_tuo(src: str, firstUpper: bool = False): """ 将下划线分隔的名字,转换为 ...

  8. python爬虫成果_Python爬虫(小练习)

    近日,在浏览伯乐在线(http://blog.jobbole.com/29281/)的时候碰到一些很不错的资源:25本免费的Python电子书 如下图: 其中,每本都是以名字+超链接的方式,于是激起了 ...

  9. python双手打字_Python打字练习小游戏源代码

    Python打字练习小游戏源代码 Python代码狂人 Python代码大全 Python打字练习小游戏源程序,随机产生一串字符,可对打字练习的正确率和时间进行统计,运行截图如下: from tkin ...

最新文章

  1. 服务器怎么清除日志文件,如何清理服务器数据库日志文件
  2. @总结 - 4@ 多项式的多点求值与快速插值
  3. 网站加速之CDN与SCDN的区别?如何选择?
  4. Nexus3功能介绍
  5. 对抗神经网络对抗攻击_您将如何检测针对神经网络的网络攻击?
  6. base64图片的String字符串压缩变小
  7. 【总目录】机器学习原理剖析、开源实战项目、全套学习指南(50篇合集)
  8. 申请微信公众测试号一直配置失败,在线等大佬帮忙。
  9. 计算机的色彩在哪调整w10,win10电脑显示器颜色不对如何调整
  10. 区别: @Secured(), @PreAuthorize() 及 @RolesAllowed()
  11. 图解 OSPF :什么是 LSA ?
  12. 【Android】开屏页面
  13. latex 公式换行_如何在微信公众号中!编辑出漂亮的数学公式?
  14. [华硕路由器官方设置]ASUS RT-AC86U官方设置
  15. 北京地铁车站换乘示意图行动(2010年4月1日更新完整)
  16. 沁恒CH32V103C8T6(二): Linux RISC-V编译和烧录环境配置
  17. celery beat一直不触发任务(卡在Writing entries...)
  18. 电脑打不开html网页,电脑网页打不开怎么回事
  19. Python爬取Instagram数据Python将图片转化为文字
  20. mysql报文格式_GitHub - YMBo/sflow_traffic: python解析报文(支持格式sflow、gre等)并存储到mysql...

热门文章

  1. ARM generic timer驱动代码分析
  2. 随机数产生函数(数据库)
  3. IVI系统中的Radio设计与实现
  4. JS章节 第一节总结知识点
  5. 我在哪一刻体验到了贫富的差距?
  6. 如何用公式编辑器打绝对值符号?
  7. 找出数组中唯一(唯二)不重复的元素
  8. 【支付架构】银联额度映射-技术方案设计
  9. 如何申请安卓证书,申请安卓证书的流程是什么?
  10. 学习使用口令破解工具:hashcat、LC、SamInside