求1到10^n的数字中有多少个0

组合数学作业题,我粗心写错了,这里记录一下正确做法。

i>1时,对所有i位数,最高位非0,后(i-1)位中,每种数字出现的次数之和相同,而后(i-1)位的数字个数总和为\(9(i-1)10^{i-1}\),其中9是最高位的取值个数,(i-1)是后(i-1)位的位数,\(10^{i-1}\)是后(i-1)位的取值个数。所以后(i-1)位的数字个数总和为\(9(i-1)10^{i-1}/10 = 9(i-1)10^{i-2}\)。算上\(10^n\)中的n个0,最终答案就是

\[n + \sum_{i=2}^{n}(9(i-1)10^{i-2}) \]

对于n=6,即求1到1000000的数字中有多少个0,答案就是

\[6 + 9(1+20+300+4000+50000) = 6+9*54321 = 488895 \]

我之前做错的地方就是没有乘上\(9(i-1)\)。真粗心啊。

posted @ 2024-09-28 14:12  寻找繁星  阅读(0)  评论(0编辑  收藏  举报