• 动手动脑4


    动手动脑4

    1、求平方数的静态类方法Square.java,不用static但仍想在main中调用的处理方法

    //类的对象实例化
    //王荣荣 2016/10/16
    public class SquareIntTest {
        public static void main(String[] args) {    
            for (int  x=1; x <= 10; x++) {
                SquareIntTest obj;   //创建类的示例obj
                obj=new SquareIntTest();
                  int result = obj.square(x);
                // Math库中也提供了求平方数的方法
                // result=(int)Math.pow(x,2);
                System.out.println("The square of " + x + " is " + result + "
    ");
            }
        }
        // 自定义求平方数的静态方法
        public int square(int y) {        
            return y * y;
        }
    }

    结果:

            

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

    //王荣荣 2016/10/15
    import java.util.Random;
    public class Random1000 {
        public static void main(String[] args) 
        {
            Random r1 = new Random(1000);
            System.out.println("第一个种子为1000的Random对象");
            System.out.println("r1.nextBoolean():	" + r1.nextBoolean());
            System.out.println("r1.nextInt():		" + r1.nextInt());
            System.out.println("r1.nextDouble():	" + r1.nextDouble());
            System.out.println("r1.nextGaussian():	" + r1.nextGaussian());
            System.out.println("---------------------------");
          
        }
    }

    结果:

     

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

    结果:

    上述示例代码展示了Java的“方法重载(overload)”特性。计算7^2时,调用的是整型

    public static int square(int x) {

    return x * x;

         }

    而计算7.5^2时,调用的是双精度类型

        public static double square(double y) {

    return y * y;

         }

     满足以下条件的两个或多个方法构成“重载”关系:

    1)方法名相同;

    2)参数类型不同,参数个数不同,或者是参数类型的顺序不同。

    以上重载是参数类型不同。

    注意:方法的返回值不作为方法重载的判断条件。

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

    System.out.println()方法中实参表内可输入很多类型。

    5.CalculateN示例程序中的BUG,50!出现负数

    原因:由于计算机使用固定的位数来保存数值,因此,能处理的数值大小是有限的,当要处理的数值超过了这一范围时,计算机将会自动截断数值的二进制表示为它所能处理的最多位数,这将导致错误的处理结果。

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

    1)使用组合数公式利用n!来计算

           

    源代码:

    import java.math.BigInteger;
    import java.util.Scanner;
    public class Zhuheshu {
        public static void main(String[] args) {
            System.out.print("请输入N:");
            Scanner scanner=new Scanner(System.in);
            int n=scanner.nextInt();
            System.out.print("请输入M:");
            Scanner scanner1=new Scanner(System.in);
            int k=scanner1.nextInt();
            System.out.println(ca(n).divide(ca(k).multiply(ca(n-k))));    
        }
        public static BigInteger ca(int m) {
            if(m==1 || m==0){
                return BigInteger.valueOf(1);
            }
            return BigInteger.valueOf(m).multiply(ca((m-1)));
        }
    }

    结果:

          

    7.递归编程解决汉诺塔问题。用Java实现

    源程序:

    //用递归方式编程解决汉诺塔问题
    //王荣荣 2016/10/16
    import java.util.Scanner;
    public class Hannuota {
    public static void main(String[] args){
        System.out.print("请输入盘子的个数:");
        Scanner scanner=new Scanner(System.in);
        int disks=scanner.nextInt();//盘子的个数
        final int source=1;//盘子的初始位置第一根柱子上
        final int desk=3;//盘子的最终位置第三根柱子上
        final int spare=2;//临时存放盘子的位置第二根柱子上
        move(disks,source,desk,spare);
    }
    public static void move(int disks,int source,int desk,int spare){
        if(disks==1)
            System.out.println(source+"->"+desk);
        else{
            move(disks-1,source,spare,desk);
        System.out.println(source+"->"+desk);
        move(disks-1,spare,desk,source);
        }
    }
    }

    结果:

    8.使用递归方式判断某个字串是否是回文( palindrome )

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

    结果:

          

  • 相关阅读:
    Python学习笔记 for windows 二
    Socket.io:有点意思
    MEAN Stack:创建RESTful web service
    在EC2上安装MEAN环境
    NodeJS:树的序列化
    NodeJS:树的反序列化
    NodeJS学习:爬虫小探补完计划
    NodeJS学习:爬虫小探
    依赖包bcrypt安装Issues
    Mongoose:Schema之路
  • 原文地址:https://www.cnblogs.com/kailugaji/p/6035745.html
Copyright © 2020-2023  润新知