题目描述:小T所在学校的校园教务系统为每位同学开通了一个账号,随机设定并告知了初始密码。 但是由于小T之前没有保存好密码,现在只好硬着头皮凭记忆去尝试输入密码进行登录。 每个系统最多有10次输错密码的机会,小T先在纸上列出了10个密码,请你帮小T检查下 他能够在第几次成功登录。 输入格式:一至十行,每行一串字符串,表示小T列出的一种可能密码。 第十一行一串字符串,表示系统设定的初始密码。 以上提到的密码,长度均不超过100,且不包含空格。 输出格式:一个整数,表示小T第几次能够正确登上系统。 若十次密码都错误,输出-1。c++实现
时间: 2023-12-30 21:05:18 浏览: 58
这道题目可以用简单的字符串匹配来解决。具体思路是,首先读入系统初始密码,然后对于每输入一个密码,都判断该密码是否与初始密码相同,如果相同则输出当前输入次数,否则继续输入密码,直到输入10次密码或者找到正确的密码。
以下是 C++ 代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string password;
cin >> password; // 读入系统初始密码
for (int i = 0; i < 10; i++) {
string guess;
cin >> guess; // 读入一个密码
if (guess == password) { // 判断该密码是否正确
cout << i+1 << endl; // 输出当前输入次数
return 0;
}
}
cout << -1 << endl; // 没有找到正确的密码,输出-1
return 0;
}
```
注意,这里的 `return 0;` 表示正常退出程序,而 `return 1;` 表示程序异常退出。
相关问题
题目描述 小T所在学校的校园教务系统为每位同学开通了一个账号,随机设定并告知了初始密码。 但是由于小T之前没有保存好密码,现在只好硬着头皮凭记忆去尝试输入密码进行登录。 每个系统最多有10次输错密码的机会,小T先在纸上列出了10个密码,请你帮小T检查下 他能够在第几次成功登录。 输入格式 一至十行,每行一串字符串,表示小T列出的一种可能密码。 第十一行一串字符串,表示系统设定的初始密码。 以上提到的密码,长度均不超过100,且不包含空格。 输出格式 一个整数,表示小T第几次能够正确登上系统。 若十次密码都错误,输出-1。
这道题目可以用简单的字符串匹配来解决。具体思路是,首先读入系统初始密码,然后对于每输入一个密码,都判断该密码是否与初始密码相同,如果相同则输出当前输入次数,否则继续输入密码,直到输入10次密码或者找到正确的密码。
以下是 Python 代码实现:
```python
password = input() # 读入系统初始密码
for i in range(10):
guess = input() # 读入一个密码
if guess == password: # 判断该密码是否正确
print(i+1) # 输出当前输入次数
break
else:
print(-1) # 没有找到正确的密码,输出-1
```
注意,上面的 `else` 是针对 `for` 循环的,表示在循环结束时(即所有密码都输入完毕)如果没有执行 `break` 语句,则执行 `else` 中的代码。在这道题目中,如果循环结束时还没有找到正确的密码,则输出 `-1`。
题目描述:小T所在学校的校园教务系统为每位同学开通了一个账号,并设定了初始密码。 初始密码为姓名拼音+生日。例如姓名拼音为"xiaoming",生日是8月18号(对应"0818",月或日不足两位数前面添一位0),则初始密码为"xiaoming0818"。 现在某同学要登录该系统,输入其姓名和生日,以及填入的密码。请帮该同学检查他是否可以成功登录系统。 输入格式:第一行一串字符串,表示姓名拼音。 第二行两个整数,表示生日的月份和天数,空格隔开; 第三行一串字符串,表示输入密码。 以上涉及密码信息长度均不超过100,且不包含空格。 输出格式:两行。 第一行是一串字符串,表示正确密码。 第二行为登录提示,成功输出yes,密码不正确输出no。c++实现
这道题目的思路是先根据输入的姓名和生日拼接出正确的密码,然后与输入的密码进行比较,判断是否相同。
以下是 C++ 代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string name, password;
int month, day;
cin >> name >> month >> day; // 读入姓名拼音和生日
password = name + (month < 10 ? "0" : "") + to_string(month) + (day < 10 ? "0" : "") + to_string(day); // 拼接正确的密码
cout << password << endl; // 输出正确密码
string input_password;
cin >> input_password; // 读入输入的密码
if (input_password == password) { // 判断输入密码是否正确
cout << "yes" << endl; // 登录成功
}
else {
cout << "no" << endl; // 登录失败
}
return 0;
}
```
注意,上面的代码中,使用了 `to_string` 函数将整数转换成字符串,并使用了三目运算符和字符串拼接来保证月份和天数为两位数格式。