9 条题解

  • 1
    @ 2023-6-10 19:52:06

    这道题目可以使用高斯求和公式来解决,即将n个数的和减去n(n+1)/2,剩下的就是缺失的数字。具体思路如下:

    1. 读入n和n-1个卡片编号。
    2. 对n个数进行求和,保存在sum中。
    3. 使用高斯求和公式计算1到n的和,保存在total中。
    4. 缺失的数字就是total-sum,输出即可。
    #include <iostream>
    using namespace std;
    int main() {
        int n, sum = 0;
        cin >> n;
        for (int i = 1; i < n; i++) {
            int card;
            cin >> card;
            sum += card; // 对n-1个卡片进行求和
        }
        int total = n * (n + 1) / 2; // 计算1到n的和
        cout << total - sum << endl; // 缺失的数字就是total-sum
        return 0;
    }
    

信息

ID
2953
时间
1000ms
内存
256MiB
难度
5
标签
递交数
692
已通过
255
上传者