列表

详情


NC54598. 上课点名

描述


在大学里一定不能旷课,一天某个老师去上课用自己的火眼金睛感觉教室里有一个学生没有来,于是他就叫学生们报出自己的学号。

已知这个班上的学号是从1开始连续编号的,并且告诉你这个班上有多少人,想问问你到底是谁没有来。

输入描述

输入数据共两行,第一行为一个整数N,表示班上的学生数量。



第二行 为一行N-1个整数,表示已经来的学生的学号,学号将按乱序给出。

输出描述

输出一个整数,为没有来的学生的学号

示例1

输入:

3
1 3

输出:

2

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C(gcc 7.5.0) 解法, 执行用时: 34ms, 内存消耗: 384K, 提交时间: 2022-11-09 18:49:52

#include<stdio.h>
int main()
{
	long N;
	scanf("%ld",&N);
	long sum=0;
	sum=N*(N+1)/2;
	long a[N-1];
	long s=0;
	for(long i=0;i<N-1;i++)
	{
		scanf("%d",&a[N-1]);
		s+=a[N-1];
	}
	long t;
	t=sum-s;
	printf("%d",t);
}

C++(clang++ 11.0.1) 解法, 执行用时: 32ms, 内存消耗: 444K, 提交时间: 2022-10-11 20:38:02

#include <stdio.h>
int main()
{
	long long  n ,a,sum;
	scanf("%lld",&n);
	sum=n*(n+1)/2;
	for(int i=1;i<n;i++){
		scanf("%lld",&a);
		sum-=a;
	}
	printf("%d",sum);
	return 0;
 } 

C 解法, 执行用时: 45ms, 内存消耗: 432K, 提交时间: 2021-11-06 12:56:33

#include<stdio.h>
int main(){
	int a,b,c,d=0,e,n,i=0;
	scanf("%d",&n);
	for(b=1;b<n;b++){
		scanf("%d",&a);
		d+=a;
	}for(c=1;c<=n;c++){
		i+=c;
	}e=i-d;
	printf("%d",e);
	
}

Python3 解法, 执行用时: 193ms, 内存消耗: 26760K, 提交时间: 2022-11-13 20:48:51

n=int(input())
data=list(map(int,input().split()))
data.sort()
for i in range(1,len(data)):
    if data[i]!=data[i-1]+1:
        print(data[i-1]+1)
        break

上一题