1-1000自然数中出现过多少次0

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 00:24:07

1-1000自然数中出现过多少次0
1-1000自然数中出现过多少次0

1-1000自然数中出现过多少次0
0在末尾的:10的倍数、100的倍数和1000的倍数,而只要含0即可,所以只算10的倍数:10的倍数有1000÷10=100个;
0在中间的:只有3位数中有这样的数.
其中百位上是1的有101到109,共9个(100已经算过,不能重复计算);
同样百位上是2到9的也各有9个;
那么0在中间的数有9×9=81个;
所以含0的数共有100+81=181个.
含有多少个0,也从末尾和中间两个方面计算:
末尾有1个0的:10的倍数有100个,计100个0;
末尾有2个0的:100的倍数有10个,但0的个数在10的倍数中已计算过1次,所以不能重复计算,计10个;
末尾有3个0的:只有1000,但前面已经将个位、十位上的0计算过了,只能计1个0;
中间有0的:与上面的计算方法相同,有81个0;
所以共有100+10+1+81=192个0.

1-1000自然数中出现过多少次0 (附:问有多少数含有0)
答案:出现过192个0,有181个数中含有0(1个或更多).
数学解法为解一,解二。软件解法为解0.
解0:(这种方法也用来检验其他解法。)
用excel生成1到n(如不了解,请见###),然后将0替换为0自身,替换全部,可以根据替换的次数知道0的个数。
当n=1000时,这个值是192.

全部展开

1-1000自然数中出现过多少次0 (附:问有多少数含有0)
答案:出现过192个0,有181个数中含有0(1个或更多).
数学解法为解一,解二。软件解法为解0.
解0:(这种方法也用来检验其他解法。)
用excel生成1到n(如不了解,请见###),然后将0替换为0自身,替换全部,可以根据替换的次数知道0的个数。
当n=1000时,这个值是192.
(附:点查找全部,可以找到含有0的单元格,其个数就是含有0数的个数。
当n=1000时,这个值是181)
(###数据生成过程:
在excel工作表中任选一个空白列,首格填入数字1,按alt_EIS(菜单“编辑-填充-序列”)设置终值为n.
外一则:如果要使用excel更多技巧,也可以参考文章:http://hi.baidu.com/wsktuuytyh/blog/item/054705f9c54b775e252df2d5.html
建立选区A1:A1000,然后按alt_EIS_回车。
也可以用word的自动编号来实现,再选择性粘入为文本,过程太麻烦,不推荐。)
解一:(列举法)
含0的二位数:形如*0, 0的个数为9;
含0的三位数:形如*00,*0*,**0, 0的个数为9*2+81+81=180; (附:含0的三位数的个数为9+81+81=171)
含0的四位数:1000, 0的个数为3; (附:含0的四位数的个数为1)
因此0的总数是 9+180+3=192 (附:含0的数的个数为9+171+1=181)
解二:(利用个位为0,十位为0,百位为0...的数的个数,对数的个数进行不重不漏的计算,即得结果)
例如100,我们归入个位为0的数计一次0,归入百位为0的数计一次0,不重不漏。
个位为0的数的个数: [1000/10]=100
十位为0的数,可以视为被100整除的数的个位被0~9替换所成,于是个数为:[1000/100]*10-9
(因为1000的0被0~9替换,会多出1001~1009,要扣除这9个)
百位为0的数,显然容易看出只有一个,那就是1000。我们也可以类似上面计算,借以验证上面的算法的正确性:视为被1000整除的数的后两位被0~99替换所成,然后扣除掉过大的数1001~1099,于是个数为[1000/1000]*100-99.
上面过程中,我们着眼于所含的0的位置,总数加起来就是所有0的个数。
即:100+100-9+(1或100-99)=192.
附:
尾部全为0的数,即个位为0的数,个数为:[1000/10]=100
十位为0,而个位不为0的数的个数: 可以视为被100整除的数的个位被1~9替换所成,于是个数为:[1000/100]*9-9=81,(因为1000的0被1~9替换,会多出1001~1009,要扣除这9个)
百位为0,而十位与个数均不为0的数,没有(类似上面的扣除方法来算的过程,还待完善)。
于是含有0的数的个数为:100+81.
更复杂的例子和向一般的n值推广,请参见:
http://hi.baidu.com/wsktuuytyh/blog/item/2fa488e719630323b838206c.html

收起