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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ решение уравнения методом хорд http://www.cyberforum.ru/cpp-beginners/thread1112018.html
Написал код, все работает, но что-то у меня сомнения по поводу правильности работы программы. Может кто подскажет, если ошибка или все верно. #include <iostream> #include <cmath> double...
C++ Заполнить матрицу ЛП, от левого нижнего угла по диагонали: влево - вверх. Здравствуйте, уважаемые форумчане. Очень нужна ваша помощь: перевести код из С в С++. Сам пытался но ничего путного не вышло. Очень буду благодарен за любую помощь. Заполнить матрицу ЛП, от левого... http://www.cyberforum.ru/cpp-beginners/thread1112008.html
Необходимо ввести строку символов, например два или три слова C++
Здравствуйте! struct car { std::string name; int god; }; int _tmain(int argc, _TCHAR* argv) { using namespace std; cout << "Skol'ko avtomobilei pomestit' v katalog: ";
Нужна помощь с расчетом среднего времени и функцией вывода C++
Доброго времени суток! Обращаюсь к Вам за помощью в след.задаче: В продуктовом магазине проводиться хронометраж работы продавцов.Фиксируется время обслуживания продавцом i-ого покупателя ,сколько...
C++ Вычислить среднее значение элементов, расположенных в массиве между первым и последним нулевыми значениями. http://www.cyberforum.ru/cpp-beginners/thread1111990.html
помогите пожалуйста с программой:) Вычислить среднее значение элементов, расположенных в массиве между первым и последним нулевыми значениями. Поменять местами минимальный и максимальный элементы....
C++ Ошибки LNK2001 в библиотеках Добрый день! Подключил библиотеку SFML к проекту, и в результате получил такие ошибки. Причем, используя Visual Studio 2008 ошибки не возникает, а при переходе на 13 студию, всвязи с необходимостью,... подробнее

Показать сообщение отдельно
Ricon
5 / 5 / 5
Регистрация: 05.03.2014
Сообщений: 68

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

05.03.2014, 18:06. Просмотров 220. Ответов 0
Метки (Все метки)

Кратко опишу требуемую задачу: Даны действительное число а, многочлен Р степени 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru