java从小白开始的练习(三,函数练习)

26 篇文章 7 订阅
18 篇文章 0 订阅

 求第n项斐波那契数列的值?
(斐波那契数列:1 1 2 3 5 8 13 21 34 55 89 ....



import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入第n项的值:");
        int num=sc.nextInt();
        System.out.println("第n项的值为:"+number(num));
    }
    public static int number(int num){
        if(num<=2){
            return 1;
        }else if(num==3){
            return 2;
        }else {
            return number(num-2)+number(num-1);
        }
    }
}

上楼梯问题:某个人上楼梯,每次只能上一个台阶或者两个台阶,
 那么当这个人到达第n个台阶时,共有多少种走法?



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();
        System.out.println("走台阶的数量方法有:"+number(num));
    }
    public static int number(int num){
        if(num<=2){
            return 1;
        }else {
            return number(num-2)+number(num-1);
        }
    }
}

买了一对刚刚出生的兔子,过了四个月被称为成年兔子,成年兔子,每一个生出一对小兔子,问第n个月,共有多少对兔子(不考虑兔子死亡问题)



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();
        System.out.println("问第"+num+"个月,共有"+getRabbitCount(num)+"对兔子:");
    }
    public static int getRabbitCount(int num) {
        if(num <= 4) {
        //判断几个月生一胎
            return 1;
        }
        return getRabbitCount(num - 1) + getRabbitCount(num - 4);
    }
}


  

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

(传递一个路径 c://a//b//c.avi,返回该文件的后缀名)

public class Test {
    public static void main(String[] args) {
        String word="  c://a//b//c.avi ";
        word.trim();
        //会把字符串的首尾空格去除掉
        String [] arr = word.split("//");
        //去掉中间
        System.out.println(arr[arr.length-1]);
        


    }
}

 输入一个字符串,判断该字符串是否是回文字符串(面试题)
        (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;
    }

去掉字符串中的所有空格



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));
        //连接字符串
    }
}

将字母全部转换为大写或小写




public class Test {
    public static void main(String[] args) {
        String word=" I love You ";
        word.trim();
        System.out.println(word.toLowerCase());
        System.out.println(word.toUpperCase());

    }
}

接收用户输入的一句英文,将其中的单词以反序输出,(例:“hello c sharp”→“sharp c hello”)


import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String s=sc.nextLine();
        s.trim();
        String ss=" ";
        String[] arr=s.split(" ");
        for(int i=arr.length-1;0<=i;i--){
            ss+=arr[i];
            ss+=" ";
        }
        System.out.println(ss);
    }
}

从请求地址中提取出用户名和域名
(例:网易 (163.com)


import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String s=sc.nextLine();
        System.out.println(s);
        String []arrs=s.split("://|/");
        System.out.println("域名为"+arrs[1]);
        String []arrname=s.split("=|&");
        System.out.println("用户名为:"+arrname[1]);
    }
}


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


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();

    }
}

    
让用户输入一句话,判断这句话中有没有邪恶,如果有邪恶就替换成这种形式然后输出,如:“老牛很邪恶”,输出后变成”老牛很**”;
   


import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一句话:(包含呵)");
        String s = sc.nextLine();
        if (s.indexOf("邪恶")!=-1){
            String ss=s.replace("邪恶","**");
            System.out.println(ss);
        }else {
            System.out.println("很正义");
        }
    }
}

猜字游戏,计算机随机一个0~100的整数,每次用户输出字猜,
   (提示如下:
        猜大了哦,重新猜
        猜小了哦,重新猜
        猜对了)



import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);

        int number=(int)(Math.random()*100);
        System.out.println("随机数为:"+number);
        for(int i=3;i>=0;i--){
            System.out.println("请输入一个数:");
            int num=sc.nextInt();
            if(num>number){
                System.out.println("温馨提示: 猜大了哦!重新猜");
            }else if(num<number){
                System.out.println("温馨提示:猜小了哦!重新猜");
            }else {
                System.out.println("猜对了");
            }
            System.out.println("您还有"+i+"机会");

        }

    }
}

作业13:猜拳游戏,石头剪刀布。随机数生成石头剪刀布(0:石头  1:剪刀  2:布)



import java.util.Random;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        Random random_num =new Random();
        for(int i=3;i>=0;i--){
            int computer=random_num.nextInt(3);
            System.out.println("欢迎参加猜拳游戏(0:石头  1:剪刀  2:布)");
            int people=sc.nextInt();
            System.out.println("机器人出:"+computer);
            if(computer-people==1){
                System.out.println("恭喜您胜出");
            }else if(computer-people==0){
                System.out.println("平手");
            }else {
                System.out.println("机器人胜出");
            }
            System.out.println("您还有"+i+"机会");
        }
    }
}

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韶光不负

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值