这道题的答案加过程

来源:百度知道 编辑:UC知道 时间:2024/06/15 21:56:31
将自然数从1开始依次写下去,得到如下一列数:12345678910111213……,以一个数字占一个位置,则第2009个位置上的数字是

1位的数共9个:1,2,3,4,5,6,7,8,9
2位的数共90个:10,11,12,...,98,99
3位的数共900个:100,101,...,998,999
4位的数共9000个:1000,1001,...,9998,9999
……
其实不难证明,n位的数共有9*10^(n-1)个

由于1位的数只有一个数字长度,所以9个1位数写在一起长度为1*9:
123456789

2位的数每个有2个数字长度,所以90个2位数写在一起长度为2*90=180:
10111213....979899

加上前面的所有1位数,得到1~99写在一起的总长度就是
1*9+2*90=9+180=189:

123456789101112...9899

同理,3位的数每个有3个数字长度,所以900个3位数写在一起的长度就是3*900=2700:
100101102...998999

加上前面1位和2位的数,得到1~999写在一起的总长度就是
1*9+2*90+3*900=2889

由于1位和2位的总长度为189,小于2009,因此第2009个位置肯定不在1~99所组成的串上。但包含3位数以后,总长度变为2889,大于2009了,所以第2009个位置上的数肯定在某个3位数的位置上。

(比方说,你要求第13个位置上的数,但是1位数连起来的长度只有9,小于13,而加上2位数以后,长度变为189,大于等于13了。所以第13个位置的数肯定在某个2位数上,实际上数一下就发现这个2位数是11,第13个位置的数落在它的个位1上。)

求2009的思路也是这样,既然1位和2位的数拼起来一共有189个数字,那么从第一个三位数(100)的第一个数字(1)开始,对应的就是整个串的第190号位置,那么,整个串的第2009号位置,对应的就是3位数的第

2009-190+1=1820

号位置。

由于3位数每个占3个位置,第1个占1~3,第2个占4~6,……