【杭电oj2043】密码

    xiaoxiao2026-01-03  10

    密码

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 47175    Accepted Submission(s): 19054 Problem Description 网上流传一句话:"常在网上飘啊,哪能不挨刀啊~"。其实要想能安安心心地上网其实也不难,学点安全知识就可以。 首先,我们就要设置一个安全的密码。那什么样的密码才叫安全的呢?一般来说一个比较安全的密码至少应该满足下面两个条件: (1).密码长度大于等于8,且不要超过16。 (2).密码中的字符应该来自下面“字符类别”中四组中的至少三组。 这四个字符类别分别为: 1.大写字母:A,B,C...Z; 2.小写字母:a,b,c...z; 3.数字:0,1,2...9; 4.特殊符号:~,!,@,#,$,%,^; 给你一个密码,你的任务就是判断它是不是一个安全的密码。   Input 输入数据第一行包含一个数M,接下有M行,每行一个密码(长度最大可能为50),密码仅包括上面的四类字符。   Output 对于每个测试实例,判断这个密码是不是一个安全的密码,是的话输出YES,否则输出NO。   Sample Input 3 a1b2c3d4 Linle@ACM ^~^@^@!%   Sample Output NO YES NO   Author linle   Source 2005实验班短学期考试   Recommend lcy   |   We have carefully selected several similar problems for you:   2042  2044  2046  2047  2045    #include<stdio.h> #include<string.h> char c[100]; int main() { int m; scanf("%d",&m); getchar(); while(m--) { int i,j=0,k=0,l=0,t=0,s,sum; gets(c); s=strlen(c); for(i=0; i<strlen(c); i++) { if(c[i]>='A'&&c[i]<='Z') j=1; if(c[i]>='a'&&c[i]<='z') k=1; if(c[i]>='0'&&c[i]<='9') l=1; if(c[i]>='#'&&c[i]<='%'||c[i]=='~'||c[i]=='!'||c[i]=='@'||c[i]=='^') t=1; } sum=j+k+l+t; if(s>=8&&s<=16&&sum>=3) printf("YES\n"); else printf("NO\n"); } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-1305617.html
    最新回复(0)