求序列1234567891011…99999100000中"2016"块的出现次数
求解序列
123456789101112...100000中"2016"数字块的出现次数 咱们一步步拆解这个问题,把所有可能出现"2016"的情况都捋清楚,避免遗漏:
1. 独立的四位数2016本身
序列里直接出现了完整的四位数2016,对应数字2016本身,这是1次。
2. 藏在五位数里的"2016"
序列里的五位数是从10000到99999,其中包含"2016"的情况有两种:
- 五位数的前四位就是"2016":也就是
20160到20169,共10个数,每个数里都带着"2016",这是10次。你之前的尝试只算了末尾是1-9的情况,漏了末尾是0的20160哦~ - 五位数的中间四位是"2016":也就是首位是1-9,后面跟着"2016",比如
12016、22016…92016,共9个数,每个数里的第2到第5位都是"2016",这是9次。
3. 跨两个相邻数字拼出来的"2016"
咱们得检查有没有两个相邻的数n和n+1,把它们拼起来后会出现"2016":
- 一位数、两位数、三位数拼起来的长度要么不够4位,要么根本凑不出"2016";
- 四位数里,唯一沾边的是
2015和2016拼出来的20152016,但这里的"2016"就是咱们已经算过的独立四位数,不算新的; - 最后五位数
99999和六位数100000拼出来是99999100000,里面也没有"2016"。
把所有次数加起来:1 + 10 + 9 = 20次。
内容的提问来源于stack exchange,提问作者Trobeli
相关产品推荐
相关产品推荐

