Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <vector>
- #include <algorithm>
- #include <cmath>
- using namespace std;
- char default_var = 'x';
- class polynomial {
- public:
- vector<int> vals;
- int vals_size;
- polynomial(vector<int> arr, int size) {
- vals = arr;
- vals_size = size;
- }
- int val(int xv) {
- int result = 0;
- for (int i = 0; i < vals_size; i++) {
- result += vals[i] * (int)pow(xv, vals_size - i - 1);
- }
- return result;
- }
- void print() {
- for (int i = 0; i < vals_size; i++) {
- //if (vals[i] == 0) continue;
- cout << vals[i];
- //if (vals[i] != 1) cout << vals[i];
- //if (i - 1 > 0) cout << default_var;
- /*if (vals_size - i - 1 > 1) cout << '^' << i + 1;*/
- cout << "x^" << i ;
- if (i + 1 < vals_size) cout << " + ";
- }
- cout << endl;
- }
- void plus(polynomial b) {
- for (int i = 0; i < min(vals_size, b.vals_size); i++) {
- vals[vals_size - i - 1] += b.vals[b.vals_size - i - 1];
- }
- if (vals_size < b.vals_size) {
- int i = 0;
- for (int c = b.vals_size - 1; c >= 0; c--) {
- if (c > vals_size - 1) vals.push_back(b.vals[i]);
- else break;
- ++i;
- }
- }
- }
- void mult(polynomial b)
- {
- vector<int> a = vector<int>(vals_size + b.vals_size, 0);
- polynomial c(a, vals_size + b.vals_size);
- for (int i = 0; i < vals_size; i++)
- {
- for (int j = 0; j < b.vals_size; j++)
- {
- c.vals[i + j] += vals[i] * b.vals[j];
- }
- }
- vals = c.vals;
- vals_size = c.vals_size;
- }
- };
- int main() {
- vector<int> a = { 6, 2, 3 };
- polynomial myP(a, 3);
- vector<int> b = { 14, 6, 2, 3 };
- polynomial myP2(b, 4);
- myP.print();
- myP2.print();
- //myP.plus(myP2);
- //myP.print();
- myP.mult(myP2);
- myP.print();
- cout << "Point 3: " << myP.val(3) << endl;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement