zoukankan      html  css  js  c++  java
  • Java动手动脑02

    一、平方数静方法:

    public class SquareInt {

    public static void main(String[] args) {

    int result;

    for (int x = 1; x <= 10; x++) {

    result = square(x);

    // Math库中也提供了求平方数的方法

    // result=(int)Math.pow(x,2);

    System.out.println("The square of " + x + " is " + result + " ");

    }

    }

    // 自定义求平方数的静态方法

    public static int square(int y) {

    return y * y;

    }

    }

    结果:

    The square of 1 is 1

    The square of 2 is 4

    The square of 3 is 9

    The square of 4 is 16

    The square of 5 is 25

    The square of 6 is 36

    The square of 7 is 49

    The square of 8 is 64

    The square of 9 is 81

    The square of 10 is 100

    二、随机数生成:

    Math函数中自带的Math.Random()生成随机数。

    还可以自定义随机数生成

    代码:

    import java.util.*;

    public class suiji {

    public int suij(int n)

    {

    int a=16807;          //a的值

    int m=(int)Math.pow(2, 31)-1;     //设置m的值

    int x=(a*n)% m;       //利用取余数生成随机数

    return x;

    }

    public static void main( String args[] )

    {

    suiji x=new suiji();

    Random a=new Random();

    int num=a.nextInt();         //随机生成初始随机数

    Scanner input=new Scanner(System.in);

    System.out.println("请输入生成随机数的数量:");

    int n=input.nextInt(); //输入生成随机数数量

    for(int i=1;i<=n;i++)

    {

    num=x.suij(num);

    System.out.print(x.suij(num)+" ");

    System.out.println();

    }

    }

    }

    结果:

    三、Java的可变参数:

    max(double ... values) 括号内的参数数量可以变化

    …”位于变量类型和变量名之间,前后有无空格均可。调用可变参数方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。

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

    // 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;

    }

    }

    输出结果:

    The square of integer 7 is 49

    The square of double 7.5 is 56.25  

    因为参数类型不同、方法名相同所以方法重载。

    Java的“方法重载(overload)”特性。

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

    1)方法名相同;(2)参数类型不同,参数个数不同,或者是参数类型的顺序不同。方法的返回值不作为方法重载的判断条件。

    四、CalculateN示例程序中的BUG:出现负数

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

    所以用BigInteger类,支持大整数的加减乘除运算。

    public static BigInteger calculateN2(int n) {

    if(n==1 || n==0)

    {

    return BigInteger.valueOf(1);

    }

    return BigInteger.valueOf(n).multiply(calculateN2((n-1))); }

    五、比较两个浮点数:

    double i = 0.0001;

    double j = 0.00010000000000000001;

     System.out.println(i==j); //输出:true

    计算机不能精确地表达浮点数(特殊形式的除外),因此,当需要比较两个浮点数是否相等时,应该比较其差的绝对值是否在某个允许范围之内即可。

    if ( Math.Abs(i - j) < 1e-10 )

    System.out.println("true");

    else

    System.out.println("false");

  • 相关阅读:
    cmd常用命令
    快捷键
    leetcode:Sort List(一个链表的归并排序)
    leetcode:Merge Two Sorted Lists(有序链表的归并)
    leetcode:Search for a Range(数组,二分查找)
    leetcode:Search a 2D Matrix(数组,二分查找)
    实时操作系统与分时操作系统
    第四章函数作业题,函数模板
    第四章函数作业题,函数的重载
    第四章函数作业题,内置函数
  • 原文地址:https://www.cnblogs.com/liulala2017/p/7662710.html
Copyright © 2011-2022 走看看