PAT-B 1067 試密碼【模擬】

Enjoy_process發表於2019-02-25

                                               PAT-B 1067 試密碼

                     https://pintia.cn/problem-sets/994805260223102976/problems/994805266007048192

 

 

題目

當你試圖登入某個系統卻忘了密碼時,系統一般只會允許你嘗試有限多次,當超出允許次數時,賬號就會被鎖死。本題就請你實現這個小功能。

輸入

輸入在第一行給出一個密碼(長度不超過 20 的、不包含空格、Tab、回車的非空字串)和一個正整數 N(≤ 10),分別是正確的密碼和系統允許嘗試的次數。隨後每行給出一個以回車結束的非空字串,是使用者嘗試輸入的密碼。輸入保證至少有一次嘗試。當讀到一行只有單個 # 字元時,輸入結束,並且這一行不是使用者的輸入。

輸出

對使用者的每個輸入,如果是正確的密碼且嘗試次數不超過 N,則在一行中輸出 Welcome in,並結束程式;如果是錯誤的,則在一行中按格式輸出 Wrong password: 使用者輸入的錯誤密碼;當錯誤嘗試達到 N 次時,再輸出一行 Account locked,並結束程式。

樣例輸入

Correct%pw 3
correct%pw
Correct@PW
whatisthepassword!
Correct%pw
#

樣例輸入

Wrong password: correct%pw
Wrong password: Correct@PW
Wrong password: whatisthepassword!
Account locked

分析

簡單模擬,具體看程式。

C++程式

#include<iostream>
#include<string>

using namespace std;

int main()
{
	string password,s;
	int n,wrong=0;//wrong表示錯誤次數 
	cin>>password>>n;
	getchar();//吸收回車符 
	while(1)
	{
		getline(cin,s);
		if(s=="#") 
		  break;
		else if(s==password)
		{
			cout<<"Welcome in"<<endl;
			break;
		}
		else
		{
			cout<<"Wrong password: "<<s<<endl;
			if(++wrong==n)
			{
				cout<<"Account locked"<<endl;
				break;
			}
		}
	}
	return 0;
}

 

相關文章