所以我必须实现这种算法:
i
从 0
开始,步长为 1
并且必须有 n
次迭代。
输入是 x
和 n
。输出是 P
,它是这个公式的乘积。那么,有没有什么办法可以在不增加变量的情况下解决呢?
int main() {
int x, exp = 1, n, i, o;
float p = 1;
printf("Input value of x: \n");
scanf_s("%d", &x);
printf("Input value of n: \n");
scanf_s("%d", &n);
for (i = 1; i <= n - 1; i++) {
if (i % 2 == 0)
o = -1;
else
o = 1;
exp = exp * x;
p = p * ((-1*(float)o) / exp);
}
printf("Requested number is: %f\n", p);
return 0;
}
最佳答案
int n = 5;
int x = 20;
float result = pow(-1.0/x, n*(n-1)/2);
结果 = 9.76563e-14
对于 n=6 和 x=20,结果 = -3.05176e-20
使用arithmetic progression用于分子和分母。
关于c - 有什么办法可以在不增加变量的情况下解决这个数学问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55958376/