题解 CF440A 【Forgotten Episode】

首先,我们来审题发现,只缺一个数

于是思路就很明确了

首先我们来算1至N的和

for(int i = 1;i <= n;i++)
{
    sum1 += i;//求1至N的和, 因为要和已有的数的和区别,所以用sum1
}

然后算已有的数的和

 

for(int i = 1;i <= n - 1;i++)//由于是给定一个长度为N-1的数列, 所以是i <= n - 1
{
    sum2 += a[i];//求已有的数的和
}

然后做差,即可得出缺少的那一个数

完整代码:

#include<cstdio>
using namespace std;
const int NR = 1e5;
int a[NR + 10];
int main()
{
    int n;
    scanf("%d",&n);
    for(int i = 1;i <= n - 1;i++)
    {
        scanf("%d",&a[i]);//输入
    }
    int sum1 = 0, sum2 = 0;//定义,sum1为1至N的和,sum2为已给出的数的和。一定要赋初值0
    for(int i = 1;i <= n;i++)
    {
        
        sum1 += i;//求1至N的和
        
    }
    for(int i = 1;i <= n - 1;i++)
       {
        sum2 += a[i];//求已有的数的和
       }
    printf("%d",sum1 - sum2);//相减得出答案
    return 0;
}

 

posted @ 2020-04-09 22:03  delphini  阅读(100)  评论(0)    收藏  举报