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+"不是回文字符串");
             }
    }

结果:

原文地址:https://www.cnblogs.com/lzxw/p/5966294.html