日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【测试点分析】1067 试密码 (20分)_20行代码AC

發布時間:2024/2/28 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【测试点分析】1067 试密码 (20分)_20行代码AC 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

立志用更少的代碼做更高效的表達


Pat乙級最優化代碼+題解+分析匯總——>傳送門


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

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

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

輸入樣例 1:
Correct%pw 3
correct%pw
Correct@PW
whatisthepassword!
Correct%pw
#
輸出樣例 1:
Wrong password: correct%pw
Wrong password: Correct@PW
Wrong password: whatisthepassword!
Account locked

輸入樣例 2:
cool@gplt 3
coolman@gplt
coollady@gplt
cool@gplt
try again
#
輸出樣例 2:
Wrong password: coolman@gplt
Wrong password: coollady@gplt
Welcome in


關于測試點2和測試點5

題中只說正確的密碼不包含空格、TAB等特殊符號, 但沒說輸入的密碼中沒有。

在樣例2中已經有了提示,一個輸入的密碼為try again。對于這種字符串, 只能用getline處理輸入, 這也是PAT題特有的一個坑點。


代碼

#include<bits/stdc++.h> using namespace std; int main() {string pass; int n; cin >> pass >> n;string input;int num = 0; getchar();while(getline(cin, input) && input!="#") {if(input != pass) cout << "Wrong password: " << input << '\n';else {cout << "Welcome in" << '\n'; break;}if(++num >= n) {cout << "Account locked" << '\n'; break;} }return 0; }

耗時


每日一句

要活成兩種樣子,發光和不發光。不發光的時候,都是在為發光做準備~

總結

以上是生活随笔為你收集整理的【测试点分析】1067 试密码 (20分)_20行代码AC的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。