2013-11-04 49 views
-4

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

(like x^2 + 2x + 4 or just x^2)
而我的问题是:我如何计算这样的东西 -
(x+1)*(x-1)
并在计算诸如
x^2, 3x^3
之后打印? X是未知的,不能被声明为一个数字。任何想法,我可以做到这一点?

+2

你在课堂上学到了什么? –

+0

那么告诉我如何使c中的多重(x-1)x + 1)= x^2-1?我会很高兴:) – Tenshin

回答

2

我不知道为什么,但我会咬着嘴,回答你的问题(即使你自己没有付出任何必要的努力,也可能是你只是不愿意甚至不知道从哪里开始)。

在您的两个问题(这个,your other one)你使用相同的例子:(x + 1) * (x - 1)我认为这是荒谬的问一个大学生写某种数学式符号运算系统的作业。 ..所以我要走出去,假设作业真的是写一个程序,将只解决功能的具体形式:(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

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

祝你好运。

+0

非常感谢你!我不想得到一个代码,但它更好地解释了如何做到这一点。现在我明白如何去做。再次感谢你! :) – Tenshin

+0

@Tenshin不客气。 – Steve