1.密码强度等级

题目描述

密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。

一、密码长度:

5 分: 小于等于4 个字符

10 分: 5 到7 字符

25 分: 大于等于8 个字符

二、字母:

0 分: 没有字母

10 分: 全都是小(大)写字母

20 分: 大小写混合字母

三、数字:

0 分: 没有数字

10 分: 1 个数字

20 分: 大于1 个数字

四、符号:

0 分: 没有符号

10 分: 1 个符号

25 分: 大于1 个符号

五、奖励:

2 分: 字母和数字

3 分: 字母、数字和符号

5 分: 大小写字母、数字和符号

最后的评分标准:

>= 90: 非常安全

>= 80: 安全(Secure)

>= 70: 非常强

>= 60: 强(Strong)

>= 50: 一般(Average)

>= 25: 弱(Weak)

>= 0:  非常弱

对应输出为:

VERY_WEAK,

WEAK,

AVERAGE,

STRONG,

VERY_STRONG,

SECURE,

VERY_SECURE

请根据输入的密码字符串,进行安全评定。

注:

字母:a-z, A-Z

数字:-9

符号包含如下: (ASCII码表可以在UltraEdit的菜单view->ASCII Table查看)

!"#$%&'()*+,-./     (ASCII码:x21~0x2F)

:;<=>?@             (ASCII<=><=><=><=><=>码:x3A~0x40)

[\]^_`              (ASCII码:x5B~0x60)

{|}~                (ASCII码:x7B~0x7E)

接口描述:

Input Param 
      String pPasswordStr:    密码,以字符串方式存放。

Return Value
   根据规则评定的安全等级。

public static Safelevel GetPwdSecurityLevel(String pPasswordStr)
 {
     /*在这里实现功能*/
  return null;
 }

输入描述:

输入一个string的密码

输出描述:

输出密码等级

示例1

输入

38$@NoNoNo

输出

VERY_SECURE

package date0608;
//48-57 : 0-9
//65-90 : A-Z
//97-122: a-z
import java.util.Scanner;
public class Main{public static void main(String []args){Scanner sc=new Scanner(System.in);while(sc.hasNext()){int score=0;String str=sc.nextLine();//1.密码长度int len=str.length();if(len<=4){score+=4;}else if(len>=5&&len<=7){score+=10;}else{score+=25;}//2.字母和数字int dxie=0;int xxie=0;int szi=0;int other=0;//if-else处理需要注意,有些是顺序判断,有些是并行判断for(int i=0;i<len;i++){if(str.charAt(i)>=65&&str.charAt(i)<=90){//全大写判断dxie++;}else if(str.charAt(i)>=97&&str.charAt(i)<=122){//全小写判断xxie++;}else if(str.charAt(i)>=48&&str.charAt(i)<+57){//是否有数字判断szi++;}else{other++;}}if(dxie==len||xxie==len){score+=10;}else if((dxie>0&&dxie<len)&&(xxie>0&&xxie<len)){score+=20;}//判断数字if(szi==1){score+=10;}else if(szi>1){score+=20;}//判断字符if(other==1){score+=10;}else if(other>1){score+=25;}//奖励判断if((dxie!=0&&szi!=0)||(xxie!=0&&szi!=0)){score+=2;}if((dxie!=0&&other!=0&&szi!=0)||(xxie!=0&&other!=0&&szi!=0)){score+=3;}if(dxie!=0&&other!=0&&szi!=0&&xxie!=0){score+=5;}//输出最后等级if(score>=0&&score<25){System.out.println("VERY_WEAK");}else if(score>=25&&score<50){System.out.println("WEAK");}else if(score>=50&&score<60){System.out.println("AVERAGE");}else if(score>=60&&score<70){System.out.println("STRONG");}else if(score>=70&&score<80){System.out.println("VERY_STRONG");}else if(score>=80&&score<90){System.out.println("SECURE");}else{System.out.println("VERY_SECURE");}}}
}

2.百钱买百鸡问题

题目描述

公元前五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

详细描述:

接口说明

原型:

int GetResult(vector &list)

输入参数:

输出参数(指针指向的内存区域保证有效):

list  鸡翁、鸡母、鸡雏组合的列表

返回值:

-1 失败

0 成功

输入描述:

输入任何一个整数,即可运行程序。

输出描述:

示例1

输入

1

输出

0 25 75
4 18 78
8 11 81
12 4 84

import java.util.Scanner;public class Main{/*百钱买百鸡:刚开始只考虑到百钱了完全没考虑百鸡*所有始终通不过*/public static void main(String []args){Scanner sc=new Scanner(System.in);while(sc.hasNext()){String str=sc.nextLine();boolean flag=isInt(str);if(flag){for(int i=0;i<=12;i++){for(int j=4;j<=25;j++){int n=100-i-j;//满足百鸡约束条件if((n%3==0)&&(i*5+j*3+n/3)==100){System.out.println(i+" "+j+" "+n);}}}}}}//判断是否为整数的函数public static boolean isInt(String string){try{int num=Integer.valueOf(string);return true;}catch(Exception e){return false;}}
}

华为机试:密码强度等级、百钱买百鸡问题相关推荐

  1. 华为机试-密码强度等级

    题目描述 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分. 一.密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二.字母: 0 分 ...

  2. 华为机试HJ72:百钱买百鸡问题

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 公元前五世纪,我国古代数学家张丘建在<算经>一书中提出了"百鸡 ...

  3. Python输入账号密码判断是否正确并输出,典型案例-百钱买百鸡的两个程序代码

    目录 前 一.输入账号密码判断是否正确并输出 1.实现的功能 2.代码程序 3.运行截图 二.典型案例-百钱买百鸡 1.实现的功能 2.代码程序 3.运行截图 前言 1.因多重原因,本博文由两个程序代 ...

  4. Python 实现百钱买百鸡问题(试使用列表推导式解决该问题)

    问题描述 百钱买百鸡:1只公鸡5块钱,1只母鸡3块钱,3只小鸡1块钱,现在要用100块钱买100只鸡,问公鸡.母鸡.小鸡各多少只? 代码实现 方法一(使用列表推导式解决该问题) rresult=[pr ...

  5. C语言试题七十六之请编写函实现百钱买百鸡

    1. 题目 编写函数:中国古代数学家张丘建在他的<算经>中提出了一个著名的"百钱买百鸡问题",鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各 ...

  6. java百_Java_百钱买百鸡

    题目:公鸡3文钱,母鸡2文钱,3只小鸡1文钱,百钱买百鸡,求多少公鸡,母鸡,小鸡? public class Work6{ public static void main(String[] args) ...

  7. 百钱买百鸡python编程列表推导式_使用循环和列表推导式两种方法求解百钱买百鸡问题。假设大鸡5元一只,中鸡3元一只,小鸡1元三只,现有100元钱想买100只鸡,有多少种买法?...

    [程序题]编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 1/1+1/3+...+1/n [单选题]患者男,67岁.确诊为原发性支气管肺癌,为行手术 ...

  8. python123百钱买百鸡_day01笔记-百钱买百鸡(100文钱,必须买100只鸡,有几种方式)

    简单的用户密码验证程序 hello.txt # coding:utf-8 #raw_input函数 提示用户输入用户名 user = raw_input("请输入用户名:") pa ...

  9. 微课|中学生可以这样学Python(例4.3):百钱买百鸡

    适用教材: 董付国,应根球.<中学生可以这样学Python>.清华大学出版社,2017. 第4章  循环结构 4.3  精彩例题分析与解答--例4.3  百钱买百鸡 京东购买链接:http ...

最新文章

  1. html5 ar开发,HTML5 WebAR开发
  2. 给RadioButtonList这些加JS事件
  3. 2021年4月12日-民航上海医院-瑞金医院古北分院-检查报告单
  4. .Net Core WebAPI + Axios +Vue 实现下载与下载进度条
  5. HTTP之长连接与短连接(C++ Qt框架实现)
  6. 实现可折叠的分组tableview
  7. 差速齿轮原理_差速器和差速锁的区别
  8. openSUSE 11.2 安装QT(二) QtCreator
  9. python自动化测试-五大自动化测试的Python框架
  10. Objective-C中的NSNumber和NSString
  11. python成员变量_Python——成员变量
  12. 2022新版UI云购H5系统源码+完美运行/功能强大
  13. 科研方法-X_LAB-方法总结和实践记录
  14. Windows下实用工具汇总(更新……)
  15. JAVA鞍山丘比特房屋租赁管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
  16. Linux命令行github,Linux命令行下使用GitHub
  17. Firefox plugin
  18. getText()和getText().toString()
  19. 9 个非常实用的网络调试命令
  20. 程序员的强迫症–如何让电脑桌面变得非常干净?

热门文章

  1. zoj 1543 Stripies
  2. 崩坏3服务器维护什么时候维护好,崩坏33月5日更新维护时间 崩坏33.8版本更新维护内容...
  3. 【jsp】jsp简介
  4. 深入理解Android系统多用户机制
  5. js解析json数据格式及格式转换
  6. linux at24c 前几个字节错误,Linux下的段错误产生的原因及调试方法
  7. 如何查看电脑的内存条型号和大小
  8. Java实现电商秒杀系统-jseckill
  9. 三种方式配置Mac OS X的启动项
  10. 《直播从零开始》SRS 安装与部署RTMP服务