Python算术序列

题:

在数学中,当算术序列中的数字序列使得连续项之间的差为常数时,则称为算术常数。

埃里克(Eric)正在写一个带有N个项的算术序列,但是在写时他错误地输入了错误的单词,并且他确信第一个项是正确的。帮助他找到他输入的错误术语。

输入:

输入的第一行包含一行T,代表测试用例的数量。然后每个测试用例的第一行包含一个整数ñ术语的总数。然后,用N个空格分隔的整数表示该序列。

    Test Cases: 2

    5
    1 3 5 6 9
    
    4
    1 2 3 5

输出:

对于每个测试用例,请打印输入错误的术语。

    6
    5

限制条件:

    1<=T<=100
    4<=N<=1000
    1<=Terms<=1000

说明:

在这个问题中,给出了算术序列,我们必须找到错误的输入序列号。因此,首先我们要找到在算术序列中恒定的序列之间的共同差异,然后检查序列并找到错误的数字。这个问题主要集中在算术上sequence(AP)。

为了解决这个问题,我们使用Python3。

码:

# 输入测试用例
print("Enter test cases (T): ")
t = int(input())

while (t > 0):
    t -= 1

    print("Enter number of elements (N): ")
    N = int(input())

    print("Enter elements separated by spaces: ")
    arr = list(map(int, input().split()))

    # 在不同的变量中分配数组的值
    a = arr[0]
    b = arr[1]
    c = arr[2]
    d = arr[3]

    # 比较数组元素之间的差异
    if (b - a == c - b): #找共同点
        diff = b - a
    elif(c - b == d - c):
        diff = c - b
    else :
        diff = d - a //3;

    ref = arr[0]
    
    #比较常见差异与数组元素
    for i in range(1, N): 
        if (ref + diff == arr[i]):
            ref = ref + diff
        #打印数组中的错误元素
        else :
            print("Wrong term/number: ")
            print(arr[i])
            break

输出结果

Enter test cases (T): 
3
Enter number of elements (N): 
5
Enter elements separated by spaces: 
1 3 5 8 9
Wrong term/number: 
8
Enter number of elements (N): 
5
Enter elements separated by spaces: 
10 20 30 35 50
Wrong term/number: 
35
Enter number of elements (N): 
7
Enter elements separated by spaces: 
11 22 33 44 55 67 77
Wrong term/number: 
67