📜  门| GATE-CS-2015(模拟测试)|问题 13(1)

📅  最后修改于: 2023-12-03 15:12:42.899000             🧑  作者: Mango

问题 13
题目描述

给定一个大小为 $n$ 的数组 $A$,其中有 $n-1$ 个唯一的整数且每个整数都在 $1$ 到 $n$ 之间。找到缺少的整数。

输入格式

第一行包含一个整数 $n$。

第二行包含 $n-1$ 个整数,表示数组 $A$。

输出格式

输出缺少的整数。

示例

输入

5
1 2 4 6

输出

5
解法

题目中指出,数组 $A$ 中有 $n-1$ 个唯一的整数且每个整数都在 $1$ 到 $n$ 之间。那么我们可以通过将 $1$ 到 $n$ 的所有整数相加,再减去数组 $A$ 中的元素和,就可以得到缺失的整数。

具体实现可以使用 Python 代码:

n = int(input())
a = list(map(int, input().split()))

sum1 = (n * (n + 1)) // 2
sum2 = sum(a)

print(sum1 - sum2)

首先读入 $n$ 和数组 $A$,然后计算出 $1$ 到 $n$ 的所有整数的和 $sum1$ 和数组 $A$ 的元素和 $sum2$。最后,输出两者的差,即为缺失的整数。