将前100个自然数依次无间隔地写成一个192位数:

问题描述:

将前100个自然数依次无间隔地写成一个192位数:
1 2 3 4 5 6 7 8 9 10 11 12.9899100从中划去170个数字,剩下的数字形成一个22位数,这个22位数最大是多少?最小是多少?如果划去100个数字,那么剩下的92位数最大是多少?最小是多少?

(1)1-9的数字里9最大,先算100个自然数里有多少个9,从1-89,每10个数里有一个,所以有9个,90-99这10个数里有11个9,加起来是20个9,那么显然这20个9在剩下的22位数的前20位上,99后边还剩100三个数字,保留10,那么这个数最大是999...99910【20个9】
最小的算法类似,但是找的是1和0,欲要数最小,最高位肯定是1,然后从10开始到90,一共有9个0,这样还需要填补12位数,而91开始到100还剩21位数,100要保留,那么还需从91-99中选9个数,显然是123456789,所以这个数是1000000000123456789100
(2)如果是剩下92个数字,显然上述方法不好用,但思路类似,先看最大的数
1-99里,一共是20个9,显然高位9越多这个数字就能够越大,从个位往最高位逐步在9之间插入数字,比如高位9个9,接909192...100,一共是9+20+3=32位,显然不够用,继续加,就是8个9接808182...100,一共是8+20+20+3=51位,相当于是增加了19位,那么继续加的话,7个9接707172...100,就有51+19=70位,再加的话,就是999999606162.100,此时是89位,差3位,只能从50-58里补,显然补的是678,那么这个数是999996789606162...100
接着看最小的数,从(1)的运算里可知,1接9个0接91-100一共有9+1+21=31个数,那么这次做的是往0里边插数:1接8个0接81-100一共有9+41=50位数,还是呈19加的规律,以此类推,100000061...100,是88位,还差4位,从51-59里补,显然补1234,那么这个数是1000001234061...100