zoukankan      html  css  js  c++  java
  • java-03方法课堂练习

    1.java中利用static(静态),将方法放入类中。如果不加static,必须先实例化出来一个类,之后再通过实例化类名+方法的形式调用。

    2.编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数。

    3.请看以下代码,你发现了有什么特殊之处吗?

    // MethodOverload.java
    // Using overloaded methods
    
    public class MethodOverload {
    
        public static void main(String[] args) {
            System.out.println("The square of integer 7 is " + square(7));
            System.out.println("
    The square of double 7.5 is " + square(7.5));
        }
    
        public static int square(int x) {
            return x * x;
        }
    
        public static double square(double y) {
            return y * y;
        }
    }

    结果:

    分析:这段代码体现了java中的方法重载,方法名相同但参数类型不同。在输入int类型时自动调用int类型的方法,在输入double类型时自动调用double类型的方法。

    4.练习:查看一下JDK中System.out.println()方法,你发现了什么?

    System是jdk自带的一个类,有很多的静态方法,也就是static的,有一个类变量out是PrintStream类型的,PrintStream有print和println方法。

    5.使用计算机计算组合数

    import java.util.Scanner;
    public class ZuheShu {
        public static void main(String[]args){
            System.out.println("请输入组合数的n和k:");
            Scanner in1=new Scanner(System.in);
            int n=in1.nextInt();
            Scanner in2=new Scanner(System.in);
            int k=in2.nextInt();
            int result=jiechen(n)/(jiechen(k)*jiechen(n-k));
            System.out.println("结果为:"+result);
            in1.close();
            in2.close();
        }
        public static int jiechen(int n)
        {
            int jieguo=1;
            if(n<0)
            {
                System.out.println("error!");
            }
            else if(n==0||n==1)
            {
                jieguo=1;
            }
            else
            {
                jieguo=jiechen(n-1)*n;
            }
            return jieguo;
             
        }
     
    }

    结果:

    (2)使用递推的方法用杨辉三角形计算

    import java.util.Scanner;
     
    public class YangHui {
        public static void main(String[]args){
            System.out.println("请输入组合数的n和k:");
            Scanner in1=new Scanner(System.in);
            int n=in1.nextInt();
            Scanner in2=new Scanner(System.in);
            int k=in2.nextInt();
            System.out.println("结果为:"+result(n,k));
            in1.close();
            in2.close();
        }
        public static int result(int n,int m)
        {
            if(m==0||n==m)
                return 1;
            int s=Math.min(m, n-m);
            int f=1,f1=0;
            for(int i=1;i<=s;i++)
            {
                f1=f*(n-i+1)/(i);
                f=f1;
            }
            return f1;
            }
        }

    结果:

    (3)使用递归的方法用组合数递推公式计算

    import java.util.Scanner;
     
    public class DiGui {
        public static void main(String[]args){
            System.out.println("请输入组合数的n和k:");
            Scanner in1=new Scanner(System.in);
            int n=in1.nextInt();
            Scanner in2=new Scanner(System.in);
            int k=in2.nextInt();
            System.out.println("组合数结果为:"+result(n,k));
            in1.close();
            in2.close();
        }
        public static int result(int m,int n)
        {
            if(m<0||n<0||m<n)
                return 0;
            if(m==n)
                return 1;
            if(n==1)
                return m;
            return result(m-1,n)+result(m-1,n-1);
        }
    }

    结果:

    6.汉诺塔

    public class TowerOFHanoi
    {
       public static void solveTowers( int disks, int sourcePeg,
          int destinationPeg, int tempPeg )
       {
          if ( disks == 1 )
          {
             System.out.printf( "
    %d --> %d", sourcePeg, destinationPeg );
             return;
          }
          solveTowers( disks - 1, sourcePeg, tempPeg, destinationPeg );
          System.out.printf( "
    %d --> %d", sourcePeg, destinationPeg );
          solveTowers( disks - 1, tempPeg, destinationPeg, sourcePeg );
       }
       public static void main( String[] args )
       {
          int startPeg = 1;
          int endPeg = 3;
          int tempPeg = 2;
          int totalDisks = 3;
          solveTowers( totalDisks, startPeg, endPeg, tempPeg );
       }
    }

    结果:

    7.回文数

    import java.util.*;
    public class HuiWen {
        public static void main(String[]args){
                  String str="";
                  System.out.println("请输入一个字符串:");
                  Scanner in=new Scanner(System.in);
                  str=in.nextLine();
                  StringBuffer hw=new StringBuffer(str);
                  hw.reverse();
                  int n=0;
                  for(int i=0;i<str.length();i++){
                   if(str.charAt(i)==hw.charAt(i))
                    n++;
                  }
                     if(n==str.length())
                      System.out.println(str+"是回文字符串");
                     else
                      System.out.println(str+"不是回文字符串");
                 }
        }

    结果:

  • 相关阅读:
    ZoneJS 的原理与应用
    RxJS 中的观察者和迭代器模式
    前端三大框架:数据绑定与数据流
    Angular 的前世今生
    验证Kubernetes YAML的最佳实践和策略
    GitOps初阶指南:将DevOps扩展至K8S
    如何使用Istio 1.6管理多集群中的微服务?
    5个规则,确保你的微服务优化运行
    使用Thanos实现Prometheus指标联邦
    丢弃掉那些BeanUtils工具类吧,MapStruct真香!!!
  • 原文地址:https://www.cnblogs.com/lzxw/p/5966294.html
Copyright © 2011-2022 走看看