获取(验证)验证码 二分法查找数字

在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         }

运行结果:

           

原文地址:https://www.cnblogs.com/ouyangtangfeng99/p/5483636.html