鱼C论坛

 找回密码
 立即注册
查看: 2129|回复: 5

神奇的第1500个丑数

[复制链接]
发表于 2020-1-29 18:18:05 | 显示全部楼层 |阅读模式

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

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

x
  1. def isugly(num: int) -> bool:
  2.         if num == 0:
  3.             return False
  4.         while not num % 2:
  5.             num //= 2
  6.         while not num % 3:
  7.             num //= 3
  8.         while not num % 5:
  9.             num //= 5
  10.         return num == 1
  11.         
  12. def getchou(num):
  13.     i,x=0,1
  14.     while i<num:
  15.        if isugly(x):
  16.           i+=1
  17.        x+=1
  18.     return x-1      
  19. import time
  20. begin=time.perf_counter()  
  21. print(getchou(1500))   
  22. end=time.perf_counter()  
  23. print(end-begin)      
  24.       
  25. '''
  26. e:\>Python ex14.py
  27. 859963392
  28. 616.1351669
  29. '''      
复制代码


核心代码引用了zltzlt的代码   计算结果正确  耗时10分钟++       代码失败
@zltzlt
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-1-29 18:20:08 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-1-29 18:23:47 | 显示全部楼层

靠,这代码忒牛B了,
摘抄自网络,源代码为c++代码

  1. def  solution(n):
  2.     if n<=0:  return 0
  3.     u=[0 for x in range(n)]
  4.     u[0]=1
  5.     t2=t3=t5=0
  6.     for i in range(1,n):
  7.         while(u[t2]*2<=u[i-1]):
  8.             t2+=1
  9.         while(u[t3]*3<=u[i-1]):
  10.             t3+=1
  11.         while(u[t5]*5<=u[i-1]):
  12.             t5+=1
  13.         u[i]=min(u[t2]*2,u[t3]*3,u[t5]*5)
  14.     return u[n-1];

  15. import time
  16. begin=time.perf_counter()  
  17. print(solution(1500))
  18. end=time.perf_counter()  
  19. print("耗时:%6f秒"%(end-begin))      
  20. '''
  21. e:\>Python ex14.py
  22. 859963392
  23. 耗时:0.002694秒

  24. e:\>
  25. '''      
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-29 19:34:50 | 显示全部楼层
wp231957 发表于 2020-1-29 18:23
靠,这代码忒牛B了,
摘抄自网络,源代码为c++代码


现在还在用 % 格式化,过时了吧

f-string:

  1. print(f"耗时:{end - begin:.6}秒")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-29 19:38:12 From FishC Mobile | 显示全部楼层
zltzlt 发表于 2020-1-29 19:34
现在还在用 % 格式化,过时了吧

f-string:

呵呵,本来想用逗号连接的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-29 21:22:38 | 显示全部楼层
wp231957 发表于 2020-1-29 19:38
呵呵,本来想用逗号连接的

给 Python 提速的 5 个方法
https://fishc.com.cn/thread-154475-1-1.html
(出处: 鱼C论坛)
其实,格式化(%,str.format)是非常耗时的
我想 @zltzlt 发 f-string 并不是没有道理的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-21 23:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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