Форум программистов, компьютерный форум CyberForum.ru

Даны действительное число а, многочлен Р степени n. Необходимо получить многочлен (х+а)*Р - C++

Восстановить пароль Регистрация
 
Ricon
5 / 5 / 5
Регистрация: 05.03.2014
Сообщений: 68
05.03.2014, 18:06     Даны действительное число а, многочлен Р степени n. Необходимо получить многочлен (х+а)*Р #1
Кратко опишу требуемую задачу: Даны действительное число а, многочлен Р степени n. Необходимо получить многочлен (х+а)*Р. При этом Р = a[n]*x^n + a[n - 1]*x^(n-1) + ... + a0. Суть проблемы: как сделать чтобы считало полином до определенного (введенного с клавы) степени, а не только до 2?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <stdio.h>
#include <malloc.h>
 
int* PolyMult(int *a, int *b, int na, int nb)
{
    int nn,i,j,k,c;
    int *r;
    nn=na+nb+1;
    r=(int *)malloc(nn*sizeof(int));
    for (k=na+nb; k>=0; k--)
    {
        c=0;
        for (i=na; i>=0; i--)
            for (j=nb; j>=0; j--)
                if ((i+j) == k) c+=a[i]*b[j];
        r[k]=c;
    }
    return r;
}
 void PolyPrint(int *a, int na)
{
    int i,beg;
    beg=0;
    for (i=na; i>=0; i--)
        if (a[i] != 0)
        {
            if (i==0)
            {
                if ((beg == 1) && (a[i]>0)) printf("+");
                printf("%d",a[i]);
                break;
            }
            if (a[i]==1)  
            {
                if ((beg == 1) && (a[i]>0)) printf("+");    
                printf("x^%d",i);
                beg=1;
            }
            else
                if (a[i]==-1) 
                {
                    printf("-x^%d",i);
                    beg=1;
                }
                else
                {
                    if ((beg == 1) && (a[i]>0)) printf("+");
                    if (i == 1)
                        printf("%dx",a[i]);
                    else
                        printf("%dx^%d",a[i],i);
                    beg=1;
                }
        }
    printf("\n");
}
                    
 
int main(int argc, char* argv[])
 
{
    int A[3]={1,2,1}; /* x^2+2x+1 */
int one;
cout<<" X+";
cin>>one;
    int B[2]={one,1};   /* x+one */
    int *R;
    R=PolyMult(A,B,2,1); 
    PolyPrint(R,3);
    free(R);
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2014, 18:06     Даны действительное число а, многочлен Р степени n. Необходимо получить многочлен (х+а)*Р
Посмотрите здесь:

C++ Многочлен P(x) степени N
Многочлен n+1ой степени C++
Дан многочлен P(x) и получить многочлен C++
Как поделить многочлен на многочлен C++
C++ класс многочлен 2 степени
Даны действительное число а, многочлен степени n. Получить многочлен (x^2+2ax+3)*P(x) C++
C++ Даны действительные числа a0,.a5, d0,.d5 . Получить многочлен шестой степени d0+d1(x-a0)+d2(x-a0)(x-a1)+.+d5(x-a0)
Дан многочлен P(x) степени n. Получить его производную P'(x), а также вычислить P'(1),P'(2),P'(3) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 11:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru