解密代码以在 Python 中化解炸弹的程序
假设有一颗你要拆除的炸弹,而你的时间已经不多了!你有一个长度为n的循环数组代码,并有一个键k。现在要解密代码,您必须替换每个数字。所有数字同时替换。规则很少-
如果k>0,则用下k个数字的总和替换第i个数字。
如果k<0,则用前k个数字的总和替换第i个数字。
如果k=0,则将第i个数字替换为0。
这里的代码是循环的,所以code[n-1]的下一个元素是code[0],code[0]的前一个元素是code[n-1]。最后我们必须返回解密后的代码。
所以,如果输入类似于code=[8,2,3,5],k=3,那么输出将是[10,16,15,13],因为,对于每个键,我们用接下来的三个元素和,所以code[0]将是10,code[1]将是16,code[2]将是15,code[3]将是13。
示例(Python)
让我们看看以下实现以获得更好的理解-
def solve(code, k):
decode = []
for i in range(len(code)):
if k > 0:
sum = 0
j = i+1
m = k
while(m):
sum+=code[j%len(code)]
m-=1
j+=1
decode.append(sum)
elif k == 0:
decode.append(0)
else:
sum = 0
j = i-1
m = k
while(m):
sum+=code[j%len(code)]
m+=1
j-=1
decode.append(sum)
return decode
code = [8,2,3,5]
k = 3
print(solve(code, k))输入
[8,2,3,5], 3输出结果
[10, 16, 15, 13]