码蹄集:MT2045斐波那契,但是是字符串
现在有字符串组:
第0项a0=“IAKIOI”a0=“IAKIOI”;
第1项a1=“WHENWILLSCORLLOFTAIWUCOMEOUT!!!”a1=“WHENWILLSCORLLOFTAIWUCOMEOUT!!!”;
之后的第k项由第k−2k−2项+第k−1k−1项构成。
问第nn项字符串的第cc个字符是什么。
a0 = "IAKIOI"
a1 = "WHENWILLSCORLLOFTAIWUCOMEOUT!!!"
n, c = map(int, input().split())
# 迭代计算斐波那契字符串的长度
def fib_length(k):
if k == 0:
return len(a0)
if k == 1:
return len(a1)
a, b = len(a0), len(a1)
for _ in range(2, k + 1):
a, b = b, a + b
return a
# 迭代查找第n项的第c个字符
current_n = n
current_c = c - 1 # 转换为0索引
while True:
if current_n == 0:
print(a0[current_c])
break
if current_n == 1:
print(a1[current_c])
break
# 计算前两项的长度
len_k_minus_2 = fib_length(current_n - 2)
if current_c < len_k_minus_2:
# 字符在F(n-2)中
current_n -= 2
else:
# 字符在F(n-1)中
current_c -= len_k_minus_2
current_n -= 1