我刚刚尝试了一个在线编程小测验,要求我尽快解决这个问题。我得到了正确的答案,但我知道它并不漂亮。我正在努力成为一名更好的程序员并编写更清洁、更高效的代码,所以请给我一些提示。我已经包含了下面的描述。PS我认为这个算法在N = 3的情况下失败了
# Enter your code here. Read input from STDIN. Print output to STDOUT
import sys
N= int(sys.stdin.readline())
stringdata = sys.stdin.readline()
array = stringdata.split(' ')
diff1=[0]*(N-1)
diff2 = [0]*(N-2)
index = 0
diff = 0
for i in range(0,len(array)-1):
first_diff[i] = int(array[i+1])-int(array[i])
for i in range(0,len(diff1)-1):
second_diff[i] = first_diff[i+1]-first_diff[i]
if second_diff[i] == 0:
diff = first_diff[i]
else:
index = i
print(int(array[index])+diff)
任务:在算术级数中找到缺失的项。
算术级数定义为给定数字序列的连续项之间存在恒定差异的级数。为您提供算术级数的连续元素。然而,有一个障碍:在给你的一组数字中,原始系列中的一个词恰好丢失了。给定系列的其余部分与原始 AP 相同。找到缺失的术语。
输入格式 第一行包含一个整数 N,这是将作为输入提供的术语数。接下来是 N 个连续整数,每对整数之间有一个空格。所有这些都在一行上,并且它们在 AP 中(除了缺少整数的点)。
输出格式一个数字,它是系列中缺少的整数。
样本输入 5 1 3 5 9 11
样本输出 7