JAVA 台劳

来源:百度知道 编辑:UC知道 时间:2024/05/15 14:49:07
用面向对象程序计算COS的值,用台劳公式
公式为COS=1-X(2)/2+X(4)/4!……
()里为次方,/后为阶乘

public class Cosx {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(cos(1,2));
System.out.println(factorial(4));
}
//求cosX的值,p为保留小数的位数
public static double cos(double x, int p) {
double precision = 1 / Math.pow(10, p);
double result = 0;
double curr = 0; // curr 是泰勒公式中的项
int sign = 1;

int i = 1;

while (true) {
curr = sign * Math.pow(x, 2 * (i - 1)) / factorial(2 * (i - 1));
result += curr;
sign *= -1;
i++;
// System.out.println(curr);方便调试时候的语句,可以删除
if (Math.abs(curr) < precision)
break;
}

return result;
}

//求x的阶乘
public static int factorial(int x) {
if (x < 0) {
throw new IllegalArgumentException("x must be>=0");
}
int fact = 1;
for (int i =