c - 有什么办法可以在不增加变量的情况下解决这个数学问题吗?

标签 c algorithm math pseudocode flowchart

所以我必须实现这种算法:

P(x):=\prod_{i=0}^{n}\frac{(-1)^i}{x^i}

i0 开始,步长为 1 并且必须有 n 次迭代。 输入是 xn。输出是 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用于分子和分母。

enter image description here 其中 Z 是从 1 到 n-1 的等差数列之和,公差等于 1。

关于c - 有什么办法可以在不增加变量的情况下解决这个数学问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55958376/

相关文章:

c - c语言socket编程中接收数据时如何实现定时器

c++ - 内存浪费?如果 main() 应该只返回 0 或 1,为什么 main 声明为 int 而不是 short int 甚至 char?

考虑节点彼此距离的情况下将节点放置在圆上的算法

项目排名算法

c - 在 C 中,迭代函数没有给出正确的输出,它应该是一个不在总和(来自用户输入的数据)或数据数组中的数字?

c - 什么是 .a 和 .so 文件?

c - 如何确定模糊的 c 类型

java - map 值和集合的交集

php - Shunting Yard 需要在 PHP 中实现,解释和解析字符串执行数学比较并返回 bool 结果

java - 将相机旋转到一个点