将所有正整数连接起来构造的一个十进制无理数如下所示:
0.123456789101112131415161718192021…
可以看出小数点后第12位数字是1。
如果dn表示上述无理数小数点后的第n位数字,求下式的值:
python实现:
def create(length):#首先生成一个10进制无理数字串,length表示d下标最大值 result_str='' element=1 temp_length=0 while temp_length<length: result_str+=str(element) element+=1 temp_length=len(result_str) return result_str def seek_num(result_str,a):#a代表无理数位串的位置,该函数范围特定位置的数字 num=int(result_str[a-1]) return num if __name__ == '__main__': result_str=create(1000000) sum_num=seek_num(result_str,1)*seek_num(result_str,10)*seek_num(result_str,100)\ *seek_num(result_str,1000)*seek_num(result_str,10000)\ *seek_num(result_str,100000)*seek_num(result_str,1000000) print(sum_num)