我再次问,因为在我的问题不清楚之前。所以我需要为我的大学编写一个程序来计算拉格朗日多项式(Wiki)并写出多项式 p(x)
(如 x^2 + 2x + 4 或只是 x^2)我的问题是:我如何计算这样的东西 -
(x+1)*(x-1)并在计算后打印
x^2, 3x^3? X 未知,不能声明为数字。有什么想法可以做到吗?
我不知道为什么,但我会咬紧牙关尝试回答你的问题(即使你自己似乎没有付出任何必要的努力,但可能你根本不知道从哪儿开始)。
在您的两个问题(这个问题和另一个问题)中,您都使用了相同的示例:(x + 1) * (x - 1)
我认为让大学生为家庭作业编写某种 Mathematica 风格的符号操作系统是荒谬的……所以我将冒险出去,假设作业真的是编写一个程序,该程序将只解决特定于以下形式的函数:(x + n) * (x + g)
如果是这样,那么这是一个相当直接的任务。
您需要意识到的第一个想法是您可以将其表示为多项式形式,如下所示:
x^2 + (n+g)x + ng
因此,您可以提示用户输入“n”和“g”,然后计算n+g
并n*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
这似乎与您正在寻找的内容一致。
祝你好运。