java 中的静态方法_Java中典型静态方法的实现

在许多语言中,静态方法被称为函数,因为他们和数学函数的性质类似。静态方法是一组在被调用时会被顺序执行的语句。用static将这类方法区别开来。

典型静态方法的实现

package com.example.demo.test;

/**

* @Author: try one

* @Description:

* @Date:Create:in 2019/1/16 18:47

* @Modified By:

*/

public class TestAlgorithms {

//计算一个整数的绝对值

public static void main(String[] args) {

// System.out.println(abs(1212));//使用模板 只需要输入 abs(1212).sout 按回车 这段代码就出现了

// System.out.println(abs(-1212));

// System.out.println(isPrime(99));

// System.out.println(isPrime2(99));

// System.out.println(sqrt(14));

System.out.println(sqrt2(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;

}

}

//判断一个数 是否是素数 (素数:在正整数中 它的约数只有 1 和 它本身)

public static boolean isPrime(int N) {

if (N < 2) {

return false;

}

if (N == 2)

return true;

for (int i = 3; i <= N; i++) {

if (N % i == 0) {

return false;

}

}

return true;

}

//判断一个数是否是素数

public static boolean isPrime2(int N) {

if (N < 2) {

return false;

}

//为什么这样可行,收敛很快

for (int i = 2; i * i <= N; i++) {

if (N % i == 0) {

return false;

}

}

return true;

}

//求一个数的平方根(用二分法)

/**

* 二分查找:有三大特性

* 1.Sorted(单调递增或者递增)

* 2.Bounded(存在上下界)

* 3.Accessible by index (能够通过索引访问)

*/

//二分查找模板如下(利用二分法求一个数的平方根)

public static int sqrt(int x) {

if (x == 0 || x == 1) return x;

int left = 1, right = x, result = 0;

while (left <= right) {

int m = (left + right) / 2;

if (m == x / m) {

return m;

} else if (m > x / m) {

right = m - 1;

} else {

left = m + 1;

result = m;

}

}

return result;

}

//求平方根的另一种算法(牛顿迭代法)

public static double sqrt2(double c) {

if (c < 0)

return Double.NaN; //Not a Number

double err = 1e-15;//1*10^-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);

}

//计算调和级数

public static double H (int N)

{

double sum=0.0;

for (int i = 0; i < N; i++) {

System.out.println("取到的值:"+sum);

sum+=1.0/i;

}

return sum;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值