求1-100万有多少个0
# PHP写法 echo strlen(preg_replace('/[1-9]/', '', implode('', range(1, 1000000))));
先考虑000000 ~ 999999(假设不忽略前面的 0) 一共一百万个数,这一百万个数一共有10^6 * 6 个数字,10个数字都是对称的,因此,一共有10^6*6/10 = 6*10^5 个 0。 但是对于不足 6 位的数我们要去掉第六位上的 0, 这一共有 10^5 个数,对于不足 5 位的数我们要去掉第五位上的 0, 这一共有 10^4 个数。。。。。最后还要加上 100万的六个0。因此6*10^5 - 10^5 - 10^4 ... - 10 - 1 + 6 = 488895个
000000 ~ 999999
10^6 * 6
10^6*6/10 = 6*10^5
6*10^5 - 10^5 - 10^4 ... - 10 - 1 + 6 = 488895
按@Masterton 个的 PHP 转个 JS 是
var a=[], i; for(i=0; i< 1000000; i++) {a[i] = i+1;} num = a.join('').replace(/[1-9]/g,'').length;
结果也是488895
488895
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(2)
先考虑
000000 ~ 999999
(假设不忽略前面的 0) 一共一百万个数,这一百万个数一共有10^6 * 6
个数字,10个数字都是对称的,因此,一共有10^6*6/10 = 6*10^5
个 0。 但是对于不足 6 位的数我们要去掉第六位上的 0, 这一共有 10^5 个数,对于不足 5 位的数我们要去掉第五位上的 0, 这一共有 10^4 个数。。。。。最后还要加上 100万的六个0。
因此
6*10^5 - 10^5 - 10^4 ... - 10 - 1 + 6 = 488895
个按@Masterton 个的 PHP 转个 JS 是
结果也是
488895