language: C++ 4.7.2 (gcc-4.7.2)
date: 745 days 8 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <math.h>
#define PRECISION 10
 
double factorial(double n) {
    if (n <= 1) // base case
        return 1;
    else
        return n * factorial(n - 1);
}
 
double mysin(int n) {
    // angle to radians
    double rad = n*1./180.*M_PI;
    double sum = rad;
    for (int i = 1; i <= PRECISION; i++) {
        if (i % 2 == 0) 
            sum += pow(rad, 2*i+1) / factorial(2 * i + 1);
        else 
            sum -= pow(rad, 2*i+1) / factorial(2 * i + 1);
    }
    return sum;
}
 
int main(){
    std::cout << mysin(90)<<" " << mysin(30)<<" " << mysin(23)<<std::endl;
}