求总和
description
给出一列数(s1,s2,s3...sn),求从1到m所有数但不包括给出的数(s1到sn)的总和。例:n=4,s1到s4分别是2,4,7,9,m=5。总和是1+3+5=9。n,m都是小于1000的正整数。给出数从小到大排列,且不会重复,s1到sn可能会大于m,但都小于100000。
多组测试数据,第一行是一个数n,第二行n个数,s1到sn。第三行是m。
输出一个数,1到m的但不包括给出数的总和。
4
2 4 7 9
5
5
2 4 6 9 10
10
9
24
hint
source
分析:
做标记。。
代码:
//到家第一发 2016 - 1 - 17
#include <iostream>
using namespace std;
int main()
{
int sum,n,m,a[1002],blog;
while(cin>>n)
{
for(int i=1;i<=n;i++) cin>>a[i];
cin>>m;
sum=0;
for(int i=1;i<=m;i++)
{
blog=0;
for(int j=1;j<=n;j++)
if(i==a[j])
{
blog=1;
break;
}
if(blog==0) sum=sum+i;
}
cout<<sum<<endl;
}
return 0;
}