wp231957 发表于 2022-12-7 14:56:24

发现一个小问题

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)))

tommyyu 发表于 2022-12-7 15:44:47

本帖最后由 tommyyu 于 2022-12-7 15:47 编辑

用字符串也不慢啊,我这里一下子就出结果了x = {'0':0, '1':0, '2':0, '3':0, '4':0, '5':0, '6':0, '7':0, '8':0, '9':0}
for i in range(1, 100000):
    for j in str(i):
      x+=1
页: [1]
查看完整版本: 发现一个小问题