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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Указать индексы всех положительных чисел http://www.cyberforum.ru/cpp-beginners/thread125524.html
Вобщем нужна помощь в составлении программы :) Дан массив вещественных случайных чисел в диапазоне от 3 до 20 указать индексы всех положительных чисел :) Добавлено через 12 часов 55 минут хм,...
C++ Полином Подскажите пожалуйста, как мне считать полином с консоли (то есть какую структуру данных использовать?), чтобы я могла задавать значения переменных и по считанному полиному вычислялось его значение. http://www.cyberforum.ru/cpp-beginners/thread125520.html
Изображения C++
Могли бы написать простейший код в C++ c комментариями, где в картинке bmp меняются все пиксели белого цвета на пиксели черного цвета?
Пожалуйста Нужно написать программу C++
Нужно написать программу, на С++ Builder 6 Написать программу, которая получает на вход текстовый файл, состоящий из команд операций над файлами ( ну по анологии в bat-файлом). Программа должна...
C++ матрицы http://www.cyberforum.ru/cpp-beginners/thread125455.html
Помогите please 1)Составить программу, которая находит максимальное и минимальное значение среди элементов одномерного массива Y, состоящий из N целых чисел, и проверяет, является ли минимальное...
C++ Готовая программа Если кто может, опишите пожалуйста на русском языке, что делает каждый оператор в данной программе: #include "stdafx.h" #include <iostream.h> #include <conio.h> #include <fstream.h> struct... подробнее

Показать сообщение отдельно
@Manya@
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 20

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

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