//使用java自带的api实现sin和cos函数
public class Test3 {
private static double pi=3.141592658;
//定义一个求绝对值的方法
double myabs(double n){
if(n<0){
n*=(-1);
}
return n;
}
//求sin
double mysin(double x){
int i=1,sign=1;
double item=x,frac=0,fz=x,fm=1;
for(;myabs(item)>=10E-5;i+=2){
frac+=item;//累加
fz=fz*x*x;//分子
fm=fm*(i+1)*(i+2);//分母
sign=-sign;//符号
item=sign*(fz/fm);//临时变量
}
return (frac);
}
//求cos
double mycos(double x){
int i=0,sign=1;
double item=1,frac=0,fz=1,fm=1;
for(;myabs(item)>=10E-5;i+=2){
frac+=item;
fz=fz*x*x;
fm=fm*(i+1)*(i+2);
sign=-sign;
item=sign*(fz/fm);
}
return (frac);
}
public static void main(String[] args){
Test3 test3 = new Test3();
System.out.println(test3.mysin(0.25*pi));
}
}
自己在面试的时候遇到要写这样的函数,当时没有什么思路,在网上看到的也都是用c和c++语言来实现的,没有用java实现的,所以花时间写了这两个函数,希望对大家有一些帮助。