c - 二项式相乘

标签 c

我再次问,因为之前我的问题不清楚。 所以我需要为我的大学制作一个程序,它将计算拉格朗日多项式( Wiki )并写出多项式 p(x)

(like x^2 + 2x + 4 or just x^2)
我的问题是:我如何计算这样的事情 -
(x+1)*(x-1)
并在计算类似
x^2, 3x^3
后打印? X 未知,无法声明为数字。我有什么想法可以做到这一点吗?

最佳答案

我不知道为什么,但我会咬牙切齿地回答你的问题(尽管你自己似乎没有付出任何必要的努力,但可能你根本就没有这样做)甚至不知道从哪里开始)。

在你的两个问题(这个问题和 your other one )中,你使用了相同的示例:(x + 1) * (x - 1) 我认为这是荒谬的要求一名大学生为家庭作业编写某种 Mathematica 风格的符号处理系统...所以我将冒险假设家庭作业实际上是编写一个程序,该程序只能解决特定形式的函数:(x + n) * (x + g)

如果是这样的话,那么这是一个相当简单的任务。

您需要意识到的第一个想法是,您可以用多项式形式表示它:

x^2 + (n+g)x + ng

所以你可以提示用户输入“n”和“g”,然后计算n+gn*g并简单地打印出上面的结果表格。

类似这样的事情:

#include <stdio.h>
#include <math.h>

int main(int argc, const char * argv[])
{
    int n = 1;
    int g = -1;

    // Print Input:
    printf("(x %c %d)(x %c %d) = ", (n >= 0 ? '+' : '-'), (int)fabs(n), (g >= 0 ? '+' : '-'), (int)fabs(g));

    // Calculate Terms:
    int term2 = n + g;
    int term3 = n * g;

    // Print Result:
    printf("x^2");
    if (term2 != 0) { printf(" %c %dx", (term2 >= 0 ? '+' : '-'), (int)fabs(term2)); }
    if (term3 != 0) { printf(" %c %d", (term3 >= 0 ? '+' : '-'), (int)fabs(term3)); }
    printf("\n");

    return 0;
}

对于值 n=1 和 g=-1,上述输出为:x^2 - 1

对于值 n=3 和 g=5,上述输出为:x^2 + 8x + 15

这似乎与您正在寻找的内容一致。

祝你好运。

关于c - 二项式相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19776248/

相关文章:

c - 不受信任的字符指针参数

c - 为什么组合 uint8_t 的两个移位会产生不同的结果?

c - 您如何在可以在另一个线程上关闭的套接字上优雅地选择()?

c - 如何创建和调用指向函数的指针

c - 函数 'wiringPilSR'的隐式声明

c++ - 如何检查一棵树是否是另一棵树的子树?

c - 用于嵌入式设备的 C 语言微型垃圾收集器

c - atof() 在需要是 double 值的地方分配 0

c++ - 函数在不应该的时候突然返回

c - 线程退出后是否可以取消分配C __thread线程本地内存?