鱼C论坛

 找回密码
 立即注册
查看: 2849|回复: 3

[已解决]python 第6讲作业程序不理解

[复制链接]
发表于 2016-3-10 22:38:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
MP[H6UMK5YP1~F{]_~6SU9L.jpg
最佳答案
2016-3-10 23:00:28
x是台阶数因是7的倍数所以从7开始
i是计数器,每次加1
flag为标记,如果找得到为1找不到为0
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-3-10 23:00:28 | 显示全部楼层    本楼为最佳答案   
x是台阶数因是7的倍数所以从7开始
i是计数器,每次加1
flag为标记,如果找得到为1找不到为0
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-11 00:10:33 | 显示全部楼层
这是我一开始写的代码:
  1. i = 1
  2. while i <= 1000:
  3.     if (i%2 == 1) and (i%3 == 2) and (i%5 == 4) and (i%6 == 5) and (i%7 == 0):
  4.         print(i)
  5.         i+=1
  6.     else:
  7.         i+=1
  8. print('以上是爱因斯坦猜想1000内的结果')
复制代码

对比之后会发现,我这个代码运行效率相比答案是很低的,比如1000内的结果,我要从i=1运行到i=1000,运行1000次,但是答案那个就只要运行1000/7=142次,效率提高了7倍。
原因在于,根据最后一个条件,阶梯数是7的倍数。所以程序第一次就从x=7开始执行,第二次执行x=7*(i+=1),以此类推。
flag就是个标记,比如1000以内的答案有4个,如果程序运行到119这个数的时候,这时候如果返回(‘阶梯数是119’),那么当程序算出第二个答案329的时候,又要输出(‘阶梯数是329’).。。。。。这样太啰嗦,不过将每次计算结果先积攒着,用flag =1表示这个数字就是我们要的答案,然后等所有数字计算完后,统一输出即可。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-11 12:23:15 | 显示全部楼层
bigpao 发表于 2016-3-11 00:10
这是我一开始写的代码:

对比之后会发现,我这个代码运行效率相比答案是很低的,比如1000内的结果,我要 ...

谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-20 04:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表