Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
@Manya@
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 20
1

Деление многочленов. Нахождение остатка

05.05.2010, 16:23. Просмотров 2516. Ответов 0
Метки нет (Все метки)

Добрый вечер!
Вот собственно код.
Код:
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
#include <stdio.h>
int *remainder(int *a, int &len1, int *b, int len2);
int *remainder(int *p1, int &s1, int *p2, int s2){
        int *ptr1=p1;
        int del;
        int i;
        int *result = (int *)malloc(sizeof(int)*(s1));
        int sresult =0;
        while (s1>=s2) {
                del = (int)(*ptr1 / *p2);
                result[sresult]=del;
                sresult++;
                for (i=0; i<s2; i++) {
                        *(ptr1+i) -= del * p2[i];
                }
                ptr1++;
                s1--;
        }
        return p1;
}
int main() {
    int s1=9;
    int s2=8;
    int *pol1 = new int [s1];
    int *pol2=new int [s2];
    for (int s=0; s<s1; s++)
    {
        printf("%d ", s);
        printf("coefficient ");
        scanf("%d", &pol1[s]);
    }
    for (int s=0; s<s2; s++)
    {
        printf("%d ", s);
        printf("coefficient ");
        scanf("%d", &pol2[s]);
    }
    printf("\n");
    printf("-> ");
     int *rem=new int[s1];
     rem=remainder(pol1, s1, pol2, s2);
     for (int s=0; s<s1; s++)
         printf("%d", rem[s]);
        printf("\n");
}
Многочлены вводятся так: например, 1+x^3 будет 1001. Когда коэффициент делителя нулевой, то естественно возникает ошибка деления на 0. Как бы это исправить?
Спасибо

Добавлено через 16 часов 40 минут
Вот, работает по большей части верно, но не всегда О_о
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
int *remainder(int *p1, int &len1, int *p2, int len2)
{
    int k= len1-1;
    for (int i=0; i<len1/2; i++)
    {
        int temp = p1[i];
        p1[i] = p1[k-i];
        p1[k-i] = temp;
    }
    for (int i=0; i<len1; i++)
        printf("%d ", p1[i]);
    printf("\n");
    k= len2-1;
    for (int i=0; i<len2/2; i++)
    {
        int temp = p2[i];
        p2[i] = p2[k-i];
        p2[k-i] = temp;
    }
    for (int i=0; i<len2; i++)
        printf("%d ", p2[i]);
    printf("\n");
    int *ptr1;
    ptr1= p1;
    while (len1>=len2)
    {
        int del = (int)(*ptr1/ *p2);
        for (int i=0; i<len2; i++)
            *(ptr1+i) -= del * p2[i];
        len1--;
        ptr1++;
    }
    p1 = ptr1;
    return p1;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2010, 16:23
Ответы с готовыми решениями:

Деление многочленов
http://www.cyberforum.ru/cpp-beginners/thread328191.html Из этой темы был...

Деление многочленов
Помогите,пожалуйста! Застрял,конкретно. Есть класс многочленов,представленный...

Деление двух многочленов
Привет всем! Было дано задание реализовать деление многочленов с комплексными...

Деление многочленов 4 степени
Доброго времени суток! Необходимо было реализовать алгоритм, делящий два...

Деление многочленов от двух переменных
Есть многочлен от двух переменных, заданный следующей структурой: struct...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2010, 16:23

Деление многочленов(полиномов). доделать класс
Суть задания - сделать класс-полином со основными арифметическими операциями...

Нужны советы как реализовать сложение, вычитание, умножение полиномов/многочленов и деление на число
Всем здравствуйте! надеюсь написать с вашей помощью программку для сложения,...

Функция проверки числа на деление без остатка на другое число
Привет! Как организовать проверку числа на то делится ли оно без остатка или...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru