【发布时间】:2012-04-05 15:01:21
【问题描述】:
检查一个数字中是否有数字“0”的最快方法是什么?
我需要开发一种快速的方法,因为我必须在 $20$ 秒内对接近 $10^9$ 的数字执行这些检查。
将零转换为字符串后是否可以搜索?
【问题讨论】:
-
这对于stackoverflow来说可能是一个更好的问题,因为“最快”的方式将取决于你的数字是如何存储的,你的编译器和CPU的细节等等,这些都不是真正的数学问题。
-
您的数字有多大也非常相关;如果它们很小,那么表查找可以很好地工作。或者,您可以对前几位数字使用除以 10 算法,然后一旦数字很小,就在您的表格中查找。
-
@NateEldredge:或者分块进行,例如除以 1000。
-
你想要 0 在以 10 为底的表示中,还是在以 2 为底的表示中,还是什么? n 保证在基数 n 表示中具有 0,因此您可以非常快速地检查所有 10^9 个数字:子程序 check(n) Return True
-
我要把这个问题迁移到stackoverflow。此处问题下方将显示一个链接,您可以按照该链接转到问题的新位置。如果您需要帮助在 stackoverflow 上关联帐户,您可以标记您的问题以引起版主注意,那里的人会提供帮助。
标签: algorithm