鱼C论坛

 找回密码
 立即注册
查看: 2919|回复: 1

[已解决]发现一个小问题

[复制链接]
发表于 2022-12-7 14:56:24 | 显示全部楼层 |阅读模式

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

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

x
1--99999里面 1的数量是50000
1--99999里面 2的数量是50000
1--99999里面 3的数量是50000
1--99999里面 4的数量是50000
1--99999里面 5的数量是50000
1--99999里面 6的数量是50000
1--99999里面 7的数量是50000
1--99999里面 8的数量是50000
1--99999里面 9的数量是50000

看到没,除了0 比较特殊以外,其他的数字含量都是一样的,当初造自然数的人 就已经考虑这些东西了?

这里面是否有快速算法,我开始时用了字符串,毫无疑问,最简单的代码 会导致最慢的速度,后来用取模计算,确实提升了一些,可是还是有明显的停顿
for y in range(10):
        print("1--99999里面 %d的数量是%d"%(y,a3(99999,y)))
最佳答案
2022-12-7 15:44:47
本帖最后由 tommyyu 于 2022-12-7 15:47 编辑

用字符串也不慢啊,我这里一下子就出结果了
  1. x = {'0':0, '1':0, '2':0, '3':0, '4':0, '5':0, '6':0, '7':0, '8':0, '9':0}
  2. for i in range(1, 100000):
  3.     for j in str(i):
  4.         x[j]+=1
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-7 15:44:47 | 显示全部楼层    本楼为最佳答案   
本帖最后由 tommyyu 于 2022-12-7 15:47 编辑

用字符串也不慢啊,我这里一下子就出结果了
  1. x = {'0':0, '1':0, '2':0, '3':0, '4':0, '5':0, '6':0, '7':0, '8':0, '9':0}
  2. for i in range(1, 100000):
  3.     for j in str(i):
  4.         x[j]+=1
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 00:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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