En trigonometría, hay ciertos ángulos conocidos como "ángulos especiales". Esto se debe a que cuando tomas pecado, cos o tan de uno de estos ángulos, obtienes un resultado que es fácil de recordar porque es una raíz cuadrada de un número racional. Estos ángulos especiales son siempre múltiplos de cualquiera pi/6
, o pi/4
. Aquí hay una visualización de todos los ángulos especiales y sus valores trigonométricos correspondientes.
Como puede ver, para cada ángulo hay un par de números correspondiente. El primer número es el coseno de ese ángulo, y el segundo es el seno de ese ángulo. Para encontrar la tangente de uno de estos ángulos, simplemente divide sin por cos. Por ejemplo, tan(pi/6)
es igual a
sin(pi/6) / cos(pi/6) ==
(1/2) / (√3/2) ==
1/√3 ==
√3/3
El reto
Debe escribir un programa completo que tome 3 entradas.
Un único carácter que representa la función trigonométrica que se supone que debes calcular. Esto será 's' (sin), 'c' (cos) o 't' (tan).
El numerador del ángulo de entrada. Esto puede ser cualquier número entero positivo. Tenga en cuenta que una entrada de 5 significa que el numerador es 5 * pi.
El denominador del ángulo de entrada. Este siempre será uno de los siguientes:
1, 2, 3, 4, 6
Luego imprima el valor exacto de la función trigonométrica de ese ángulo. Aquí hay una lista de sin, cos y tan de todos los ángulos hasta 2 * pi:
sin(0pi): 0
sin(pi/6): 1/2
sin(pi/4): root(2)/2
sin(pi/3): root(3)/2
sin(pi/2): 1
sin(2pi/3): root(3)/2
sin(3pi/4): root(2)/2
sin(5pi/6): 1/2
sin(1pi): 0
sin(7pi/6): -1/2
sin(5pi/4): -root(2)/2
sin(4pi/3): -root(3)/2
sin(3pi/2): -1
sin(5pi/3): -root(3)/2
sin(7pi/4): -root(2)/2
sin(11pi/6): -1/2
sin(2pi): 0
cos(0pi): 1
cos(pi/6): root(3)/2
cos(pi/4): root(2)/2
cos(pi/3): 1/2
cos(pi/2): 0
cos(2pi/3): -1/2
cos(3pi/4): -root(2)/2
cos(5pi/6): -root(3)/2
cos(1pi): -1
cos(7pi/6): -root(3)/2
cos(5pi/4): -root(2)/2
cos(4pi/3): -1/2
cos(3pi/2): 0
cos(5pi/3): 1/2
cos(7pi/4): root(2)/2
cos(11pi/6): root(3)/2
cos(2pi): 1
tan(0pi): 0
tan(pi/6): root(3)/3
tan(pi/4): 1
tan(pi/3): root(3)
tan(pi/2): nan
tan(2pi/3): -root(3)
tan(3pi/4): -1
tan(5pi/6): -root(3)/3
tan(1pi): 0
tan(7pi/6): root(3)/3
tan(5pi/4): 1
tan(4pi/3): root(3)
tan(3pi/2): nan
tan(5pi/3): -root(3)
tan(7pi/4): -1
tan(11pi/6): -root(3)/3
tan(2pi): 0
Si obtiene un número mayor que 2pi, reste 2pi hasta obtener un número que esté dentro del rango. Por ejemplo, sin(17pi/6)
es lo mismo que sin(5pi/6)
== 1/2. Se espera que su programa haga una simplificación básica, por ejemplo, si su entrada cos(2pi/4)
es la misma que cos(pi/2)
== 0. Las funciones de trigonometría incorporadas no están permitidas.
¡La respuesta más corta en bytes gana!