lhz学长的伯牙绝弦#

题目链接:https://ac.nowcoder.com/acm/contest/92607/A

本题逻辑很简单,只要注意一下坑就行。

1、学号是由11位数字字符组成的字符串。

重点1:11位数字

if(s.size()==11)

重点2:数字字符

bool p(string s){
	for(int i=0;i<=10;i++) if(s[i]<'0'||s[i]>'9') return false;
	return true;
}

完成筛选后就可进行判断是不是老登辣!!!

2、24级新生的学号以24开头。

3、特殊的,存在23级的预科生也属于24级新生,他们的学号以23开头且第5位必须是7。

if((s[0]=='2'&&s[1]=='4')||(s[0]=='2'&&s[1]=='3'&&s[4]=='7'))

如果都不符合就输出-1,表示没有新生通过这道题目(都送伯牙绝弦了竟然没人想喝!!!)

完整代码附上

#include <bits/stdc++.h>
using namespace std;

bool p(string s){
	for(int i=0;i<=10;i++) if(s[i]<'0'||s[i]>'9') return false;
	return true;
}

int main() {
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		string s;
		cin>>s;
		if(s.size()==11&&p(s)){
			if((s[0]=='2'&&s[1]=='4')||(s[0]=='2'&&s[1]=='3'&&s[4]=='7')){
				printf("%d",i);
				return 0;
			}
		}
	}
	printf("-1");
	return 0;
}