我想查找無限序列的數字[i],但在以下輸入中需要很長時間。無限序列。無法在1秒內處理答案
讓我們考慮一個接一個地寫上10的上升冪構成的數字的無限序列。這裏是序列的開始:
110100100010000...
你要找出序列的確定位置處的數字。輸入 第一行只有一個整數N(1≤N≤65535)。左N行中的第i行包含整數K [i] - 序列中的位置數(1≤K [i]≤231 - 1)。
輸出 您將輸出以空格分隔的N位數字0或1。更確切地說,輸出的第i個數字等於上述序列的第Ki個數字。
INPUT
4 3 14 7 6
輸出
0 0 1 0
這裏是我的代碼
x = input() a = [] for i in range(x): y = input() a.append(y) b = '1' c = 1 for i in range(100): c *= 10 b += str(c) for i in range(x): print b[a[i]-1],
問題是? – 2014-12-08 08:22:32
@jonrsharpe我想這裏的問題是'K [i]'可以大得多('1≤K [i]≤231 - 1',我假設「231」是一個複製粘貼錯誤,意味着2^31)並且這個程序的方法不成立。 – Carsten 2014-12-08 08:30:47
這裏的訣竅是注意到並不是很多,你可以根據模式確切地確定它們的位置;其他任何東西都必須是零。您可以編寫一個函數來確定,對於給定的'i',無需構建字符串*,必須* K [i]'*。 – jonrsharpe 2014-12-08 08:34:50