62,614
社区成员
发帖
与我相关
我的任务
分享
double x;
Scanner sc = new Scanner(System.in);
x = sc.nextDouble();
// 计算步骤控制变量
int n = 0;
// x的2*次方
double xn = x * x;
// 2*n的阶乘
double jc = 2;
// 保存计算2*n的阶乘需要的临时量
double tmp;
// 精度控制,也就是下一步要增加的x^(2*n)/(2*n)!
double c = xn / jc;
// cos(x)
double cos = 1;
do {
if (n % 2 == 0) {
cos -= c;
} else {
cos += c;
}
n++;
// 计算2*n的阶乘
tmp = 2 * (n + 1);
jc *= tmp;
jc *= (tmp - 1);
// 计算x的2*n次方
xn *= (x * x);
// 计算精度控制量
c = xn / jc;
} while (c >= 0.000001);
System.out.println("i=" + n + ", cos(" + x + ")=" + cos);
sc.close();
int n = 1;
double jc = 1;
double fjc = 1;
double sum = 1;
do {
//利用之前的计算结果(n-1)!求n!
jc *= n;
fjc = 1 / jc;
sum += fjc;
n++;
} while (fjc >= 0.0001);
System.out.println("i=" + n + ", sum=" + sum);
System.out.println(1+1+1/2+1/6);