Java基础算法


一、Java基础算法

1.一共有20级楼梯,每次可以上1级或2级,登上第20级一共有多少种上法。

package com.java.demoTest;

public class Test {
   
    /**
     * 一共有20级楼梯,每次可以上1级或2级,登上第20级一共有多少种上法
     * @param n
     * @return
     */
    static int f(int n){
   
        //上一级的第一种方法
        if (1 == n){
   
            return 1;
        }

        //上二级的第二种方法
        if (2 == n){
   
            return 2;
        }

        //上三级的第三种方法
        //从第三级开始往后,每级的上法是前两级的和
        if (n > 2){
   
            return f(n - 1) + f(n - 2);
        }
        return f(0);
    }

    public static void main(String[] args) {
   
        int a = f(20); //层数
        System.out.println(a+"种方法");
    }
}

2.生成随机验证码(5位数,有数字,有大写字母,小写字母.

package com.java.demoTest;

import java.util.Random;

/**
 * 生成随机验证码(5位数,有数字,有大写字母,小写字母
 */
public class Test2 {
   
    public static void main(String[] args) {
   

        for (int i = 0; i < 1; i++) {
   
            System.out.println("随机验证码:"+code());
        }

        System.out.println("==========================");

        Random random = new Random();
        //当前数组不赋值的情况下,每一个元素值默认为false
        boolean[] arr = new boolean[26]; //26个字母
        boolean[] brr = new boolean[10]; //0-10个数字
        int type; //放产生随机的类型
        char a; //存放产生的具体字符
        String b = ""; //存放累加的字符串
        int index; //存放当前具体字符所在数组的下标

        for (int i = 0; i < 5; i++) {
   
            type = random.nextInt(3);

            if (type == 0){
   
                do {
   
                    //这一轮产生的是大写字母
                    index = random.nextInt(26); //0-25
                    a = (char) (65 + index);
                }while (arr[index]);
                arr[index] = true;
            }else if (type == 1){
   
                do {
   
                    //这一轮产生的是小写字母
                    index = random.nextInt(26)
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值