一、平方数静方法:

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 + "\n");
}
}
// 自定义求平方数的静态方法
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平方和拆分 java平方数_System

三、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("\nThe 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;
输出:true

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

if ( Math.Abs(i - j) < 1e-10 )
System.out.println("true");
else
System.out.println("false");