【6】JAVA练习-函数递归

本文通过一系列JAVA编程作业,展示了递归在解决实际问题中的应用,包括计算斐波那契数列、兔子繁殖问题、字符串处理、回文判断等。同时,涵盖了文件路径解析、正则表达式、字符串操作以及猜数字和猜拳游戏等经典编程题目,旨在提升读者的递归思维和JAVA编程能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作业1:
求第n项的斐波那契数列值;
在这里插入图片描述

作业2:
小明的妈妈看到小明今天高考结束,买了一对刚刚出生的小兔子,小兔子需要3个月长大成兔,
之后每月生产一对小兔子,假如不考虑小兔子的死亡情况,求第n月共有多少对兔子?

1	1
2	1
3	1
4	2
5	3
6	4
7	6
8	9
9	13

在这里插入图片描述

作业3:
根据完整的路径从路径中分离文件路径、文件名及扩展

传递一个路径 c://a//b//c.avi,返回该文件的后缀名
在这里插入图片描述

作业4:
输入一个字符串,判断该字符串是否是回文字符串(面试题)
123454321
在这里插入图片描述

 
import java.util.Scanner;
 
public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一回文数:");
        int num = sc.nextInt();
       if(isPalind(num)){
           System.out.println("是回文数");
       }else {
           System.out.println("不是回文数");
       }
    }
    public static boolean isPalind(int x){
        //首尾判断
        if(x==0)return true;
        if(x<0||x%10==0)return false;
        int div=1;
        while (x/div>=10) div*=10;
        while (x>0){
            if(x/div!=x%10)return false;
            else {
                x%=div;
                x/=10;
                div/=100;
            }
        }
        return true;
    }
}
 
import java.util.Scanner;
 
public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一回文数:");
        int num = sc.nextInt();
       if(isPalind(num)){
           System.out.println("是回文数");
       }else {
           System.out.println("不是回文数");
       }
    }
    public static boolean isPalind(int x){
        //字符串处理
        String a=(new StringBuilder(x+"")).reverse().toString();
        return (a.equals(x+""));
    }
}
 public static boolean isPalind(int x){
        //对折解法
        if(x<0||(x%10==0&&x!=0)) return false;
        int reverse=0;
        while (x>reverse){
            reverse=reverse*10+(x%10);
            x/=10;
        }
        return x==reverse||x==reverse/10;
    }

作业5:去掉字符串中的所有空格

 
 
public class Test {
    public static void main(String[] args) {
        String word=" I love You ";
        word.trim();
        //会把字符串的首尾空格去除掉
        String [] arr = word.split("\\s+");
        //去掉中间
        System.out.println(word.join("/",arr));
        //连接字符串
    }
}

作业6:
将字母全部转换为大写或小写
在这里插入图片描述

作业7:接收用户输入的一句英文,将其中的单词以反序输
出,“hello c sharp”→“sharp c hello”。
在这里插入图片描述

作业8:从请求地址中提取出用户名和域名
http://www.163.com?userName=admin&pwd=123456
在这里插入图片描述
在这里插入图片描述
点击:刘帅哥正则视频链接

作业9:让用户输入一句话,找出所有"呵"的位置。

 
import java.util.Scanner;
 
public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一回文数:");
        String str = sc.nextLine();
        char val='呵';
        for(int i=0;i<str.length();i++){
            if(str.charAt(i)==val){
                System.out.println(i);
            }
        }
        sc.close();
 
    }
}

作业10:让用户输入一句话,判断这句话中有没有邪恶,如果有邪
恶就替换成这种形式然后输出,如:“老牛很邪恶”,输出后变
成”老牛很**”;
在这里插入图片描述

作业11:
上楼梯问题:某个人上楼梯,每次只能上一个台阶或者两个台阶,
那么当这个人到达第n个台阶时,共有多少种走法?
在这里插入图片描述

作业12:
猜字游戏,计算机随机一个0~100的整数,每次用户输出字猜,
提示如下:
猜大了,重新猜
猜小了,重新猜
猜对了
在这里插入图片描述

作业13:猜拳游戏,石头剪刀布。
随机数生成石头剪刀布(0:石头 1:剪刀 2:布)
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值