zoukankan      html  css  js  c++  java
  • 获取(验证)验证码 二分法查找数字

    在a-z,A-Z,0-9这些数字和字母中,  随机取出四个作为验证码,  并在控制台上打印出来。

     1         //第一种做法   char数组
     2         char jh[]=new char[62];//存放验证码字符集合
     3         //存入0-9
     4         for(int i=0;i<=9;i++){
     5            int num=i+48;//数字0在字符集中对应的数字是48
     6            char sz=(char)num;
     7             jh[i]=sz;
     8         }
     9         //存入a-z
    10         for(int i=10;i<=35;i++){
    11             int num=i+87;//字母a 在字符集中对应的数字是97
    12             char zm=(char)num;
    13             jh[i]=zm;
    14         }
    15         //存入A-Z
    16         for(int i=36;i<62;i++){
    17             int num=i+29;//字符A 在字符集中对应的数字是65
    18             char ZM=(char)num;
    19             jh[i]=ZM;
    20         }
    21         int sy1[]=new int[4];
    22         Random r1=new Random();
    23         for(int i=0;i<4;i++){
    24             sy1[i]=r1.nextInt(62);
    25         }
    26         System.out.print("请按大小写输入验证码:");
    27         for(int i=0;i<4;i++){
    28             System.out.print(jh[sy1[i]]+" ");
    29         }
     1         // 第二种做法
     2         // 将a-z A-Z 0-9 随机全部输入字符串str中
     3         String str = "QWERTYUIOPASDFGHJKLZXCVBNM1234567890mnbvcxzasdfghjklpoiuytrewq";
     4         Scanner sc = new Scanner(System.in);
     5         for (int i = 1; i <=3; i++) {
     6             String yam = "";
     7             int sy2[] = new int[4];
     8             Random r2 = new Random();
     9             for (int j = 0; j < 4; j++) {
    10                 sy2[j] = r2.nextInt(62);
    11                 yam = yam + str.substring(sy2[j], sy2[j] + 1);
    12             }
    13             System.out.println("验证码:" + yam);
    14             System.out.print("请输入验证码:");
    15             String str1 = sc.next();
    16             if (str1.equals(yam)) {
    17                 System.out.println("恭喜你 验证成功!");
    18                 break;
    19             } else if (3 - i != 0) {
    20                 System.out.println("验证失败,请重新输入。你还有" + (3-i) + "次机会输入");
    21             } else {
    22                 System.out.println("验证失败,请稍后重新尝试!");
    23             }
    24 
    25         }

    两种算法  运行后的结果:

    二分法查找数组中的数:

     1         //输入开始结束的数字   递增排列 在数组中
     2         Scanner sc3=new Scanner (System.in);
     3         System.out.print("请输入数列开始的数字:");
     4         int num1=sc3.nextInt();
     5         System.out.print("请输入数列结束的数字:");
     6         int num2=sc3.nextInt();
     7         int length=num2-num1+1;
     8         int arr[]=new int[length];
     9         for(int i=0;i<length;i++){
    10             arr[i]=i+num1;
    11             System.out.print(arr[i]+" ");
    12         }
    13         //输入任意一个要查找的数字  进行查找
    14         System.out.print("
    请输入查找的数字:");
    15         int num3=sc3.nextInt();
    16         int index=-1;
    17         int start=0;
    18         int end=length-1;
    19         int middle;
    20         while(start<=end){
    21             middle=(start+end)/2;
    22             
    23             if(arr[middle]==num3){
    24                 index=middle;
    25                 break;
    26             }
    27             if(arr[middle]<num3){
    28                 start=middle+1;
    29             }
    30             if(arr[middle]>num3){
    31                 end=middle-1;
    32             }
    33         }
    34         if(index==-1){
    35             System.out.println("查找的数字不在数列中!");
    36         }else{
    37             System.out.println("查找成功,数字"+num3+"在数列中的索引是"+index+",第"+(index+1)+"个数。");
    38         }

    运行结果:

               

  • 相关阅读:
    三极管8050和8550对管的参数
    三极管9014 管脚
    水深不语,人稳不言
    编译结果分析
    三母运算符
    C语言关键词解释
    51定时器初值的计算
    聪明人都在远离手机虚假繁荣的“人脉”关系
    每段路,都是一种领悟
    你的灯亮着吗读后感二
  • 原文地址:https://www.cnblogs.com/ouyangtangfeng99/p/5483636.html
Copyright © 2011-2022 走看看