c - |c|系列 1+2x+3x^2+4x^3+....nx^(n-1)

标签 c series

首先,我进行了搜索,发现所有问题都相似,但不完全是这个。

这是我在这里的第一篇文章,我是编程的初学者,目前正在学习用 C 编写代码。 现在已经为这段代码苦苦挣扎了大约 5 个小时。

问题是在 C 中创建一个程序,仅使用循环(而不使用 pow(),仅使用 stdio.h 库)。

问题是让用户给你两个数字 - X 和 N 该程序将打印以下等式的结果:

1+2x+3x^2+4x^3+....+nx^(n-1)

例如输入 - X=2 N=3

1*2^0 + 2*2^1 + 3*2^2

程序将打印的是“17

到目前为止,这是我的尝试,我得到了 Power 函数,但我无法找到一种方法将其合并到程序本身中。

#include <stdio.h>

int main(void)    
{
    int i, j=0, b = 0;
    float x, n;
    double sum = 0, sumt=0;
    do{
        printf("Please enter two numbers \n");
        flushall;
        scanf("%f %f", &n, &x);
    } while (x <= 0);
    for (i = 1; i <= n; i++){
        sum = x*x;
    }

    sumt += sum;
    printf("%f", sum);
}

最佳答案

您无需尝试创建 pow 的实现,而是需要利用表达式项之间的关系。

n 项是 nx^(n-1)n-1 - 项是 (n-1)x^(n-2)

如果我们将第 n 项表示为 T(n) 并将第 n-1 项表示为 T(n-1),

T(n) = T(n-1)*x*n/(n-1)

给定第一项的起始值,

T(1) = 1

您可以使用上述公式计算后续项。

下面的代码应该可以工作。

// Initialize the values for N=1
term = 1;
sum = 1;

// Iterate starting from 2
for (i = 2; i <= n; i++){
    term *= x*i/(i-1);
    sum += term;
}

关于c - |c|系列 1+2x+3x^2+4x^3+....nx^(n-1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31992994/

相关文章:

c - C 中的数组大小

c - 在 C 中连接 8 个字符串形成 1 个字符串

c - 如何将 "associate"两个变量移动到 C 中二维数组中的某个位置?

c++ - 系列的第n项

python - pandas bool 值系列为 True 的输出

python - df[x]、df[[x]]、df ['x' ]、df[['x' ]] 和 df.x 之间的区别

c++ - 异常行为

python - 编辑 : how to declare array of struct in Python

python - 从 dict 创建 python pandas 系列,分配索引的问题

python - 读取 csv 后从单元格切片的数据帧