编程序求出 sin(π/2)、cos(87°)。
程序的要求:求 sin、cos 时可用如下公式进行迭代计算,
编两个函数分别起名为 mySin 和 myCos,计算 sin、cos 的值。
提示:当最后一项的绝对值小于 0.00001 时,累加结束。
public class Test18 {
public static void main(String[] args) {
System.out.println(mySin(Math.PI / 2));
System.out.println(myCos(Math.PI * 87 / 180));
}
public static double mySin(double x) {
double sin;
double sum = 0;
for (int n = 0; ; n++) {
double pow1 = Math.pow(-1, n);
double pow2 = Math.pow(x, 2 * n + 1);
int f = factorial(2 * n + 1);
sin = (pow1 * pow2) / f;
if (Math.abs(sin) < 0.00001) {
break;
}
sum += sin;
}
return sum;
}
public static double myCos(double x) {
double cos;
double sum = 0;
for (int n = 0; ; n++) {
double pow1 = Math.pow(-1, n);
double pow2 = Math.pow(x, 2 * n);
int f = factorial(2 * n);
cos = (pow1 * pow2) / f;
if (Math.abs(cos) < 0.00001) {
break;
}
sum += cos;
}
return sum;
}
//阶乘
public static int factorial(int num) {
int sum = 1;
if (num == 0) {
sum = 1;
}
for (int i = 1; i <= num; i++) {
sum *= i;
}
return sum;
}
}