Java函数案例详解

  1. ​ 设计方法,计算两个日期之间相差多少天。两个日期的年月日由参数控制。

    package com.qf.methodwork;
    //设计方法,计算两个日期之间相差多少天。两个日期的年月日由参数控制。
    public class calcDate {
        public static void main(String[] args) {
            String star="2021-07-18";
            String end="2022-07-21";
            String[] star1=star.split("-");
            String[] end1=end.split("-");
            int days=0;
            if(Integer.parseInt(star1[0])<Integer.parseInt(end1[0])){
                for(int i=Integer.parseInt(star1[0]);i<Integer.parseInt(end1[0]);i++){
                    //计算是否是瑞年
                    if(i%4==0&&i%100!=0||i%400==0){
                        days+=366;
                    }else{
                        days+=365;
                    }
                }
            }
            //得到开始那一年已过去的日期
            int starday=days(star1[0],star1[1],star1[2]);
            //得到结束那一年已过去的日期
            int endday=days(end1[0],end1[1],end1[2]);
            //减去开始那一年已过去的日期,加上结束那一年已过去的日期
            days=days-starday+endday;
            System.out.println("相差的天数:"+days);
        }
        public static int days(String year,String month,String day){
            int days=0;
            int nowyear=Integer.parseInt(year);
            int[] monthday={0,31,28,31,30,31,30,31,31,30,31,30,31};
            int[] monthday1={0,31,29,31,30,31,30,31,31,30,31,30,31};
            boolean flag=true;
            if(nowyear%4==0&&nowyear%100!=0||nowyear%400==0){
            }else{
                flag=false;
            }
            for(int i=0;i<Integer.parseInt(month);i++){
                if(flag){
                    days+=monthday1[i];
                }else{
                    days+=monthday[i];
                }
            }
            days+=Integer.parseInt(day);
            return days;
        }
    ​
        }
    run:
       相差的天数:368 
  2. 开发一个标题为“FlipFlop”的游戏应用程序。它从 1 计数到 100,遇到 3 的倍数就替换为单词“Flip”,5 的倍数就替换为单词“Flop” ,既为 3 的倍数又为 5 的倍数则替换为单词“FlipFlop

    package com.qf.methodwork;
    ​
    import java.util.Scanner;
    ​
    //开发一个标题为“FlipFlop”的游戏应用程序。
    // 它从 1 计数到 100,遇到 3 的倍数就替换为单词“Flip”,
    // 5 的倍数就替换为单词“Flop” ,
    // 既为 3 的倍数又为 5 的倍数则替换为单词“FlipFlop”
    public class DesignGame {
        public static void main(String[] args) {
            /*
            * 可以从控制台输出标题 进行相关的提示
            * 调用方法method
            */
            /*Scanner input =new Scanner(System.in);
            System.out.println("请输入标题:FlipFlop");
            String title = input.next();*/
            method("FlipFlop");
        }
    ​
    ​
        /*分析:
        * 1.定义一个String 变量存下标题FlipFlop
        * 方法内部for循环100次
        * for循环内部嵌套if语句 ifi%3==0 修改
        *  ifi%5==0 修改
        * ifi%3==0  %% i%5==0 修改
        * else 输出原来的标题*/
        public static void method(String gname){
            /*应该先定义好要修改的标题*/
            String g1 = "flip";
            String g2 = "flop";
            for (int i = 0; i < 100; i++) {
                if (i%3==0 && i%5!=0){
                    System.out.println("i="+i+",标题"+g1);
    ​
    ​
                }else if (i%5==0 && i%3!=0){
                    System.out.println("i="+i+",标题"+g2);
    ​
    ​
                }else if (i%3==0 && i%5==0){
                    System.out.println("i="+i+",标题"+gname);
    ​
    ​
                }else{
                    System.out.println("i="+i+",不符合游戏规则");
                }
            }
        }
    }
    running:
    i=0,标题FlipFlop
    i=1,不符合游戏规则
    i=2,不符合游戏规则
    i=3,标题flip
    i=4,不符合游戏规则
    i=5,标题flop
    i=6,标题flip
    i=7,不符合游戏规则
    i=8,不符合游戏规则
    i=9,标题flip
    i=10,标题flop
    i=11,不符合游戏规则
    i=12,标题flip
    i=13,不符合游戏规则
    i=14,不符合游戏规则
    i=15,标题FlipFlop
    ......

    3.两个自然数X,Y相除,商3余10,被除数、除数、商、余数的和是163,求被除数、除数。

    package com.qf.methodwork;
    //两个自然数X,Y相除,商3余10,
    // 被除数、除数、商、余数的和是163,
    // 求被除数、除数。
    public class divisioncalc {
        public static void main(String[] args) {
            /*
            * 0<=a<=150
            * 1<b<150
            * a+b=150
            * a/b==3 a%b==10*/
            /*写一个for循环代替a*/
            for (int a = 0; a < 150; a++) {
                for (int b = 1; b <a/3 ; b++) {
                    if((a/b==3) && (a%b==10) && (a+b==150)){
                        System.out.println("被除数a="+a+",除数b=:"+b);
                    }
                }
            }
        }
    }
    run:
    被除数a=115,除数b=:35

    4.某数学竞赛中,参赛人数大约在380~450人之间。比赛结果,全体考生的总平均分为76分,男生的平均分为75分,女生的平均分为80.1分,求男女生各有多少人?

    package com.qf.methodwork;
    //某数学竞赛中,参赛人数大约在380~450人之间。
    // 比赛结果,全体考生的总平均分为76分,
    // 男生的平均分为75分,女生的平均分为80.1分,
    // 求男女生各有多少人?
    public class CalcNum {
        public static void main(String[] args) {
            /*
            * 总人数的范围 380-450
            * 一个变量存储总人数:int all = ;
            * 总体平均分76
            * 男生平均分75
            * 女生平均分80.1
            * */
            /*定义一个变量存储所有男生的总分数*/
            long M;
            /*定义一个变量存储所有女生的总分数*/
            long W;
                for ( M = 1; M <=450 ; M++) {
                for (W = 1; W <=450 ; W++) {
                    /*开始进行判断*/
                    if((M+W>+380) && (M+W<=450) && (M*75)+(W*80.1)==76*(M+W)){
                        System.out.println("男生="+M+"人,女生="+W+"人");
                    }
                }
                }
            }
        }
        run:
    男生=328人,女生=80人
    1. 使用递归计算1+2+3+...+100的和

      package com.qf.methodwork;
      // 使用递归计算1+2+3+...+100的和
      public class CalcNumSum {
          public static void main(String[] args) {
              long result = calcSum(100);
              System.out.println("1+2+3+...+100的和="+result);
          }
          /*递归就是在一个方法内 调用方法本身
          * 创建一个递归函数
          **/
          public static long calcSum(int n){
              if (n==1){
                  return 1;
              }
                  return calcSum(n-1)+n;
          }
      }
      run:
      1+2+3+...+100的和=5050S

6.使用递归输出30位的斐波那契数列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值