题目要求
关键点
- 结果精确到10^-5 (即当最后一项的绝对值小于0.00001时,累加结束,求绝对值的函数也可以自定义函数myabs实现)
Java 中10-5 如何表示,科学记数法 - 不允许调用任何库函数
实现幂函数,阶乘函数的效果 - 实现累加效果
实验代码
public class SinxTaylor {
public static void main(String[] args) {
System.out.println(myin(1.570));
}
static double myin(double num2) {
int i = 1, negation = 1;
double sum;
double index = num2;
double Factorial = 1;
double TaylorExpansion = num2;
do {
Factorial = Factorial * (i + 1) * (i + 2);
index *= num2 * num2;
negation = -negation;
sum = index / Factorial * negation;
TaylorExpansion += sum;
i += 2;
} while (myabs(sum) > 1e-5);
return TaylorExpansion;
}
static double myabs(double num1) {
return num1 > 0 ? num1 : -num1;
}
}