openjudge平台 090:电话号码
时间: 2023-06-29 22:17:12 浏览: 66
这道题目的要求是输入一个电话号码,然后判断这个电话号码是否合法。一个电话号码必须满足以下条件:
1. 共有11位数字;
2. 第一位数字必须是1;
3. 第2-3位数字必须是3、4、5、7、8中的一个;
4. 第4-7位数字必须是0-9中的数字;
5. 第8-11位数字必须是0-9中的数字。
如果一个电话号码符合以上的5个条件,则认为这个电话号码是合法的,否则就是不合法的。
以下是这道题目的C++代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
bool is_valid_phone_number(string phone_number) {
if (phone_number.size() != 11 || phone_number[0] != '1') {
return false;
}
char second_char = phone_number[1];
char third_char = phone_number[2];
if (second_char != '3' && second_char != '4' && second_char != '5' && second_char != '7' && second_char != '8') {
return false;
}
for (int i = 3; i < 11; i++) {
if (phone_number[i] < '0' || phone_number[i] > '9') {
return false;
}
}
return true;
}
int main() {
string phone_number;
cin >> phone_number;
if (is_valid_phone_number(phone_number)) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
return 0;
}
```
首先,我们定义了一个函数`is_valid_phone_number`,这个函数接受一个字符串`phone_number`作为参数,然后判断这个电话号码是否合法。在函数中,我们先判断电话号码的长度和第一位是否为1,如果不符合这两个条件,则直接返回false。接着,我们判断第二位和第三位是否为3、4、5、7、8中的一个,如果不是,则返回false。最后,我们遍历电话号码的第4-11位,判断是否都是数字,如果不是,则返回false。如果电话号码符合以上的5个条件,则返回true。
在`main`函数中,我们首先读入一个电话号码,然后调用`is_valid_phone_number`函数来判断这个电话号码是否合法。如果合法,则输出"YES",否则输出"NO"。