Mnożenie wielomianów- końcowa operacja.

0

Witajcie,

Mam do napisania program który mnoży wielomiany. Oto kod:

#include <iostream>
using namespace std;

int main () {
	int n1; // stopień pierwszego wielomianu
	int n2; // stopień drugiego wielomianu
 	int n;  // stopień wielomianu po przemnożeniu
 	
	cout << "Podaj stopien pierwszego wielomianu:" << endl;
	cin >> n1;
	cout << "Podaj stopien drugiego wielomianu:" << endl;
	cin >> n2;

	int a[100];
	int b[100];

	cout << "Wpisz kolejno wspolczynniki pierwszego wielomianu." << endl;
	for(int x = n1 ; x >= 0 ; x--) {
		cin >> a[x];
		if (a[x] != 0) {
		cout << a[x];
		if (x > 0) cout << "n^" << x << "+";
		}
	}
	cout << endl;
	
	cout << "Wpisz kolejno wspolczynniki drugiego wielomianu." << endl;
	for(int y = n2; y >= 0; y--) {
		cin >> b[y];
		
		if (b[y] != 0) {
		   cout << b[y]; // wyświetlamy współczynniki, jeśli nie są równe 0
		   if (y > 0) 
		   	  cout << "n^" << y << "+";
		}
	}
	cout << endl << endl;

	int i = 0;
	int c[100];
	
	for (int r = n1; r >= 0; r--) {
 		for (int t = n2; t >= 0; t-- ) {
		 	c[i] = a[r] * b[t]; 
		 	
		 	if (c[i] != 0) {
		   	   cout << c[i];
   	   		   if (r + t > 0) 
		   	   	  cout << "n^" << r + t << "+";
		    }
		    i++;
 	 	} 
	}  			 

return 0; 
}
	
	 

Mnożenie działa, wynik zwraca wielomian, który jest sumą wyrazów o różnych współczynnikach potęgi n. Np. 4n3 + 2n2 + 3n + 4 n2 - 2n + 4. I właśnie do tej części mma pytanie. Jak dodać współczynniki przy tych samych potęgach?

0

c++ to nie procesor symboliczny

0

Czyli? Co masz na myśli?

0

moze machnij array dwuwymiarowy

pierwszy wpis do wspolczynnik z mnozenia a drugi to potega czyli 4n^2 ro bedzie array[4][2]

0
  1. użyj std::vector<double> jako reprezentację wielomianu
  2. podziel kod na małe funkcje:
ostream& PrintPolynomial(ostream &out, const std::vector<double> &polynomial);
istream& ReadtPolynomial(istream &in, std::vector<double>& polynomial);
std::vector<double> polynomial MutiplyPolymials(const std::vector<double> &a, const std::vector<double> &b);
  1. pomyśl trochę. Musisz sprytniej zaprojektować pętlę for by od razy liczyć sumę czynników dla danej potęgi. Najpierw iteruj po potędze wyniku, a w środku iteruj po potędze jednego z czynników.
0

Jeśli zostajesz przy tablicach, to mnożenie zrób tak;

for(int i=0;i<=n1;i++)
{
     for(int j=0;j<=n2;j++)
     {
          c[i+j]+=a[i]*b[j];
     }
}
0

cos takiego

4n3 + 2n2 + 3*n + 2

array[1][3]=4
array[2][2]=2
array[3][1]=3
array[4][0]=2

1 użytkowników online, w tym zalogowanych: 0, gości: 1