1067 试密码(20 分)
当你试图登录某个系统却忘了密码时,系统一般只会允许你尝试有限多次,当超出允许次数时,账号就会被锁死。本题就请你实现这个小功能。
输入在第一行给出一个密码(长度不超过 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
cool@gplt 3
coolman@gplt
coollady@gplt
cool@gplt
try again
#
Wrong password: coolman@gplt
Wrong password: coollady@gplt
Welcome in
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String ar[]=sc.nextLine().split(" ");
int a=Integer.parseInt(ar[1]);
String arr[]=new String[a+1] ;
arr[a]="Account locked";
int j=0;
while(sc.hasNext()) {
String mima=sc.nextLine();
if( mima.equals("#"))break;
if(j<a) {
if(!mima.equals(ar[0])) {
arr[j]="Wrong password:"+" "+ mima;
j++;
}
if(mima.equals(ar[0])) {
arr[j]="Welcome in";
j++;
}
}
}
for(int i=0;i<arr.length;i++) {
if(arr[i].equals("Welcome in")){
System.out.println(arr[i]);
break;
}
else {
System.out.println(arr[i]);
}
}
}
}
思路总结:这里我用了一个数组来存放需要打印的字符串,长度为可试错的次数+1,最后一个赋值为"Account locked,后对输入的字符串进行处理如果在试错的次数内那就进行判断如果和密码相等就把welcome in 赋值给对应的字符串数组反之也类似,超过了这个次数就不做处理 遇到#跳出循环打印 字符串数组 这里打印welcome in后就可以不要在打印了.
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- stra.cn 版权所有 赣ICP备2024042791号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务