умножение полиномов (исправить ошибку)

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
dashka64
Сообщения: 2
Зарегистрирован: 14 май 2014, 15:30

Код: Выделить всё

void Umnog (double *kA, double *kB, int degreeA, int degreeB ,char* path)
{
	
	int max;
    max = degreeA + degreeB;
    int *mul = new int[max + 1];
	memset(mul, 0, (max + 1)*sizeof(int));
    for (int i = 0; i <= degreeA ; i++)
	{
        for (int j = 0; j <= degreeB ; j++)
		{
			mul[i + j] += kA[i] * kB[j];
	        cout << mul[i + j];
	        cout << endl;
		    
		}
	}
	
}

При выводе пишет лишние коэффиценты.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

А зачем выводить промежуточные результаты, когда они еще не подсчитаны?
Значение элемента с индексом i+j будет достоверно известно только после прохода двух вложенных циклов.
Например, при degreeA = 3 и degreeB = 4 значение mul[2] будет "довычисляться" (с накоплением) три раза:
i=0, j=2
i=1, j=1
i=2, j=0
It's a long way to the top if you wanna rock'n'roll
dashka64
Сообщения: 2
Зарегистрирован: 14 май 2014, 15:30

Спасибо, все получилось.
Ответить