跪求,各位大神,zerojudge a624 pascal的代码
pascal吧
全部回复
仅看楼主
level 1
夜翼小子 楼主
内容 :
你在一家成长中的电子商务网站工作,而它也成了窃贼觊觎的对象。窃贼以猜测密码的方式来存取顾客的帐号,这常常是轻而易举的 (如 "secret", "password", 和 "1234")。如果你的顾客使用较好的密码,你的公司就可以省点力气来处理盗刷的问题。
你被赋与的任务为设计一个密码分析器以告知顾客他们所选的密码的强度。一个「强」密码以增加长度或混用字母、数字及符号来增加猜测的难度。在这项工作中,一个「强」 (strong) 密码拥有以下所有特性: 长度至少 8 个字元 (如:"spookyfish")同时有大写及小写字母 (如:"sPookyFISH")同时有字母及至少一个数字或符号 (如:"sPookyFiSH3" 或 "$PookyFI3H") 一个「好」 (good) 密码拥有两个上述的特性,一个「尚可」(acceptable) 密码只拥有一个特性。不符合上述任何特性的则为「弱」(week) 密码。请写一个程式来分析所给的密码的强度。
输入说明 :
每笔测资一行,其中含有一个密码,长度最大为 30 字元。密码中没有空白。
范例输入 题目没有特别说明,则应该以多测资的方式读取,若不知如何读取请参考 a001 的范例程式。
lizard
aardvark
Aardvark
Aardvark77
范例输出 :
This password is WEAK This password is ACCEPTABLE This password is GOOD This password is STRONG
谢写了
2015年05月09日 07点05分 1
level 7
var
x:string;
s,sum,fact1,fact2,fact3,i:longint;
begin
while not eof do
begin
readln(x);
s:=length(x);
sum:=0;
fact1:=0;
fact2:=0;
fact3:=0;
if s>=8 then inc(sum);
for i:=1 to s do
begin
if (x[i]>='a') and (x[i]<='z') then inc(fact1)
else if (x[i]>='A') and (x[i]<='Z') then inc(fact2)
else inc(fact3);
end;
if (fact1>0) and (fact2>0) then inc(sum);
if (fact1+fact2>0) and (fact3>0) then inc(sum);
write('This password is ');
if sum=3 then write('STRONG')
else if sum=2 then write('GOOD')
else if sum=1 then write('ACCEPTABLE')
else write('WEAK');
write(' ');
end;
end.
2015年05月09日 12点05分 2
1