算法(4th ed)(29):基础——基础编程模型 3.6.1

阅读数:13 2019 年 10 月 30 日 06:46

算法(4th ed)(29):基础——基础编程模型 3.6.1

(静态方法:静态方法)

方法封装了由一系列语句所描述的运算。方法需要参数(某种数据类型的值)并根据参数计算出某种数据类型的返回值(例如数学函数的结果)或者产生某种副作用(例如打印一个值)。BinarySearch 中的静态函数 rank() 是前者的一个例子;main() 则是后者的一个例子。每个静态方法都是由签名(关键字public static 以及函数的返回值,方法名以及一串各种类型的参数)和函数体(即包含在花括号中的代码)组成的,如图 1.1.2 所示。静态函数的例子请见表 1.1.5。

图 1.1.2 静态方法解析

表 1.1.5 典型静态方法的实现

任务 实现
计算一个整数的绝对值
public static int abs(int x)
{
if (x < 0) return -x;
else return x;
}
计算一个浮点数的绝对值
public static double abs(double x)
{
if (x < 0.0) return -x;
else return x;
}
判定一个数是否是素数
public static boolean isPrime(int N)
{
if (N < 2) return false;
for (int i = 2; i*i <= N; i++)
if (N % i == 0) return false;
return true;
}
计算平方根(牛顿迭代法)
public static double sqrt(double c)
{
if (c < 0) return Double.NaN;
double err = 1e-15;
double t = c;
while (Math.abs(t - c/t) > err * t)
t = (c/t + t) / 2.0;
return t;
}
计算直角三角形的斜边
public static double hypotenuse(double a, double b)
{ return Math.sqrt(a*a + b*b); }
计算调和级数(请见表 1.4.5)
public static double H(int N)
{
double sum = 0.0;
for (int i = 1; i <= N; i++)
sum += 1.0 / i;
return sum;
}

评论

发布