Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.79 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <algorithm>
  5. #include <cmath>
  6.  
  7. using namespace std;
  8.  
  9. char default_var = 'x';
  10.  
  11. class polynomial {
  12. public:
  13.     vector<int> vals;
  14.     int vals_size;
  15.  
  16.     polynomial(vector<int> arr, int size) {
  17.         vals = arr;
  18.         vals_size = size;
  19.     }
  20.  
  21.     int val(int xv) {
  22.         int result = 0;
  23.  
  24.         for (int i = 0; i < vals_size; i++) {
  25.             result += vals[i] * (int)pow(xv, vals_size - i - 1);
  26.         }
  27.  
  28.         return result;
  29.     }
  30.  
  31.     void print() {
  32.         for (int i = 0; i < vals_size; i++) {
  33.             //if (vals[i] == 0) continue;
  34.             cout << vals[i];
  35.             //if (vals[i] != 1) cout << vals[i];
  36.             //if (i - 1 > 0) cout << default_var;
  37.             /*if (vals_size - i - 1 > 1) cout << '^' << i + 1;*/
  38.             cout << "x^" << i ;
  39.             if (i + 1 < vals_size) cout << " + ";
  40.         }
  41.  
  42.         cout << endl;
  43.     }
  44.  
  45.     void plus(polynomial b) {
  46.         for (int i = 0; i < min(vals_size, b.vals_size); i++) {
  47.             vals[vals_size - i - 1] += b.vals[b.vals_size - i - 1];
  48.         }
  49.  
  50.         if (vals_size < b.vals_size) {
  51.             int i = 0;
  52.             for (int c = b.vals_size - 1; c >= 0; c--) {
  53.                 if (c > vals_size - 1) vals.push_back(b.vals[i]);
  54.                 else break;
  55.  
  56.                 ++i;
  57.             }
  58.         }
  59.     }
  60.  
  61.     void mult(polynomial b)
  62.     {
  63.         vector<int> a = vector<int>(vals_size + b.vals_size, 0);
  64.         polynomial c(a, vals_size + b.vals_size);
  65.  
  66.         for (int i = 0; i < vals_size; i++)
  67.         {
  68.             for (int j = 0; j < b.vals_size; j++)
  69.             {
  70.                 c.vals[i + j] += vals[i] * b.vals[j];
  71.             }
  72.         }
  73.         vals = c.vals;
  74.         vals_size = c.vals_size;
  75.     }
  76. };
  77.  
  78. int main() {
  79.     vector<int> a = { 6, 2, 3 };
  80.     polynomial myP(a, 3);
  81.  
  82.     vector<int> b = { 14, 6, 2, 3 };
  83.     polynomial myP2(b, 4);
  84.  
  85.     myP.print();
  86.     myP2.print();
  87.  
  88.     //myP.plus(myP2);
  89.     //myP.print();
  90.  
  91.  
  92.     myP.mult(myP2);
  93.     myP.print();
  94.  
  95.     cout << "Point 3: " << myP.val(3) << endl;
  96.  
  97.     system("pause");
  98.     return 0;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement