Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Дан полином Pn(x)= a0+ a1 x+ a2 x^2+…+anx^n
Получить полином F(n+3)(x)= P_n(x) * (0.5 + x^3)
Как реализовать сложение коэффициентов при одинаковых степенях x при переходе к F(n+3)(x)
Код понимаю только на си
Заранее огромное спасибо
Код прилогается
Приложение:
#include <stdio.h>
#include <locale.h>
#include <conio.h>
int main()
{
char ext;
int a[9];
double b[13], c[16];
int n, m, o, q = 0, i, j, k; // q вспом. переменная (замена i) для получения коэф. массива b
setlocale(LC_ALL, "rus");
do {
do {
printf("\nВведите степень полинома:\n");
scanf("%d",&n);
} while ( n < 0 || n > 9);
printf("\nВведите коэфициенты: \n");
for( i = 0; i <= n; i++ )
{
printf("a[%d] = ", i);
scanf("%d",&a[i]);
}
printf("\nИсходный полином :Pn(x)= ");
for( i = 0; i <= n; i++ )
{
if(i == 0)
{
printf("%d", a[i]);
printf(" + ");
}
else
{
printf("%d*X^%d", a[i], i);
if (i != n)
printf(" + ");
else
printf("");
}
}
printf ("\n\nУмножаем исходный полином на ( x^3 + 0,5 )\n");
m = n + 10;
i = 0;
for ( j = 0; j <= n; j++ )
{ b[j] = a[i] * 1./2; i++; }
for ( j = n + 1; j <= m; j++ )
{
if (j>n)
{ b[j] = a[q=]; q++; }
}
printf ("\nКоэффициенты нового полинома Fn+3(x): ");
for( j = 0; j <= m; j++ )
printf("\nb[%d] = %lg ", j, b[j]);
printf("\n\nПолученный полином : Fn+3(x)= ");
for( j = 0; j <= m; j++ )
{
if(j == 0)
{
printf("%lg", b[j]);
printf(" + ");
}
else
{
printf("%lg*X^%d", b[j], j);
if (j != m)
printf(" + ");
else
printf("");
}
}