import java.util.Scanner;
class JavaApplication17 {
public static void main
(String[] args
) { Scanner in
= new Scanner
(System.
in); int num;
double rad30
= Math.
toRadians(30); double rad45
= Math.
toRadians(45); num = in.nextInt();
System.
out.
println("Math.sin(30) " + Math.
sin(rad30
)); System.
out.
println("sen(30) " + sen
(rad30, num
) + "\n"); System.
out.
println("Math.sin(45) " + Math.
sin(rad45
)); System.
out.
println("sen(45) " + sen
(rad45, num
)); }
public static double fatorial(int n) {
if (n == 0) {
return 1;
}
return n * fatorial(n - 1);
}
public static double potencia(double base, int expoente) {
int i;
double result = 1;
if (expoente == 0) {
return 1;
} else if (base == 0) {
return 0;
} else {
if (expoente < 0) {
expoente = -expoente;
base = 1 / base;
}
for (i = 1; i <= expoente; i = i + 1) {
result = result * base;
}
return result;
}
}
public static double sen(double x, int qtdTermos) {
double result = 0;
int n;
for (n = 0; n < qtdTermos; n = n + 1) {
result = result + potencia(-1, n)
/ fatorial(2 * n + 1) * potencia(x, 2 * n + 1);
}
return result;
}
/*public static double somatorio(int n) {
double result = 1.0;
int i, numerador = 2, denominador = 3, expoente = 3;
for (i = 1; i <= n - 1; i = i + 1) {
result = result
+ potencia(numerador, expoente) / fatorial(denominador);
numerador = numerador + 1;
expoente = expoente + 1;
denominador = denominador + 2;
}
return result;
}*/
}
aW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwoKY2xhc3MgSmF2YUFwcGxpY2F0aW9uMTcgewoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBTY2FubmVyIGluID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKICAgICAgICBpbnQgbnVtOwogICAgICAgIGRvdWJsZSByYWQzMCA9IE1hdGgudG9SYWRpYW5zKDMwKTsKICAgICAgICBkb3VibGUgcmFkNDUgPSBNYXRoLnRvUmFkaWFucyg0NSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludCgiRGlnaXRlOiAiKTsKICAgICAgICBudW0gPSBpbi5uZXh0SW50KCk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJNYXRoLnNpbigzMCkgIiArIE1hdGguc2luKHJhZDMwKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJzZW4oMzApICIgKyBzZW4ocmFkMzAsIG51bSkgKyAiXG4iKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk1hdGguc2luKDQ1KSAiICsgTWF0aC5zaW4ocmFkNDUpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInNlbig0NSkgIiArIHNlbihyYWQ0NSwgbnVtKSk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBkb3VibGUgZmF0b3JpYWwoaW50IG4pIHsKICAgICAgICBpZiAobiA9PSAwKSB7CiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbiAqIGZhdG9yaWFsKG4gLSAxKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGRvdWJsZSBwb3RlbmNpYShkb3VibGUgYmFzZSwgaW50IGV4cG9lbnRlKSB7CiAgICAgICAgaW50IGk7CiAgICAgICAgZG91YmxlIHJlc3VsdCA9IDE7CiAgICAgICAgaWYgKGV4cG9lbnRlID09IDApIHsKICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgfSBlbHNlIGlmIChiYXNlID09IDApIHsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKGV4cG9lbnRlIDwgMCkgewogICAgICAgICAgICAgICAgZXhwb2VudGUgPSAtZXhwb2VudGU7CiAgICAgICAgICAgICAgICBiYXNlID0gMSAvIGJhc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yIChpID0gMTsgaSA8PSBleHBvZW50ZTsgaSA9IGkgKyAxKSB7CiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiBiYXNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZG91YmxlIHNlbihkb3VibGUgeCwgaW50IHF0ZFRlcm1vcykgewogICAgICAgIGRvdWJsZSByZXN1bHQgPSAwOwogICAgICAgIGludCBuOwogICAgICAgIGZvciAobiA9IDA7IG4gPCBxdGRUZXJtb3M7IG4gPSBuICsgMSkgewogICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyBwb3RlbmNpYSgtMSwgbikKICAgICAgICAgICAgICAgICAgICAvIGZhdG9yaWFsKDIgKiBuICsgMSkgKiBwb3RlbmNpYSh4LCAyICogbiArIDEpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgfQoKICAgIC8qcHVibGljIHN0YXRpYyBkb3VibGUgc29tYXRvcmlvKGludCBuKSB7CiAgICAgICAgZG91YmxlIHJlc3VsdCA9IDEuMDsKICAgICAgICBpbnQgaSwgbnVtZXJhZG9yID0gMiwgZGVub21pbmFkb3IgPSAzLCBleHBvZW50ZSA9IDM7CiAgICAgICAgZm9yIChpID0gMTsgaSA8PSBuIC0gMTsgaSA9IGkgKyAxKSB7CiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdAogICAgICAgICAgICAgICAgICAgICsgcG90ZW5jaWEobnVtZXJhZG9yLCBleHBvZW50ZSkgLyBmYXRvcmlhbChkZW5vbWluYWRvcik7CiAgICAgICAgICAgIG51bWVyYWRvciA9IG51bWVyYWRvciArIDE7CiAgICAgICAgICAgIGV4cG9lbnRlID0gZXhwb2VudGUgKyAxOwogICAgICAgICAgICBkZW5vbWluYWRvciA9IGRlbm9taW5hZG9yICsgMjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0qLwp9