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;
}