From 2b61739a02e2be5093f4ac721b40552a742429e5 Mon Sep 17 00:00:00 2001 From: tuohm <952153252@qq.com> Date: Thu, 6 Aug 2020 20:08:14 +0800 Subject: [PATCH] Sin.java --- Sin.java | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 Sin.java diff --git a/Sin.java b/Sin.java new file mode 100644 index 0000000..3811d77 --- /dev/null +++ b/Sin.java @@ -0,0 +1,91 @@ +package sin; + +public class Sin { + + public static double number; + public static double PI = 3.14159265358979323846; + + + public Sin() { + + } + + public static double sin(double num) { + + double tmp = Math.toRadians(num); + number=Math.sin(tmp); + + return number; + + } + + public static double cos(double num) { + + double tmp = Math.toRadians(num); + + return Math.cos(tmp); + + } + + public static double mysin(double x) + { + while(x>2*PI) x -= 2*PI; + while(x<0) x += 2*PI; + + double index, result=0; + int i=1; + do{ + index = mypow(x,i) / factorial(i); + result += mypow(-1,i/2) * index; + i += 2; + } + while(index>1e-6); + return result; + } + + public static double factorial(double i) { + + if(i==0) + return 1; + else + return i*factorial(i-1); + } + + public static double mypow(double x,int i) { + + if(i>0) + return x*mypow(x, i-1); + else if(i<0) + return 1/x*mypow(x, i+1); + else + return 1; + + + } + + public static double mycos(double x) { + while(x>2*PI) x -= 2*PI; + while(x<0) x += 2*PI; + + double index, result=0; + int i=0; + + do{ + index = mypow(x,i) / factorial(i); + result += mypow(-1,i/2) * index; + i += 2; + } + while(index>1e-6); + + return result; + } + public static double toRadians(double angdeg) { + return angdeg / 180.0 * PI; + } + public static void main(String[] args) { + + System.out.println(mysin(toRadians(30))); + System.out.println(mycos(30)); + } + +}