Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- vector < int > suma;
- vector < int > produs;
- vector < int > cifren;
- int coeficienti[] = {4, 30, 50, 30, 6};
- void prod(vector < int > &v, vector < int > &v2)
- {
- int i, j, t = 0;
- vector < int > v3 = vector < int > (v.size() + v2.size() - 1 , 0);
- for(i = 0; i < v.size(); i++)
- {
- for(j = 0; j < v2.size(); j++)
- {
- v3[i + j] += v[i] * v2[j];
- }
- }
- for(i = 0; i < v3.size(); i++)
- {
- t += v3[i];
- v3[i] = t % 10;
- t /= 10;
- }
- while(t)
- {
- v3.push_back(t % 10);
- t /= 10;
- }
- v = vector < int > ();
- for(i = 0; i < v3.size(); i++)
- {
- v.insert(v.begin() , v3[i]);
- }
- }
- void adunare(vector < int > &v, vector < int > &v2)
- {
- int e = 0, i;
- if(v.size() < v2 .size())
- {
- v.resize(v2.size());
- for(i = v.size(); i < v2.size(); i++)
- {
- v.push_back(0);
- }
- }
- else
- {
- for(i = v2.size(); i < v.size(); i++)
- {
- v2.push_back(0);
- }
- }
- for(i = 0; i < v.size(); i++ , e /= 10)
- {
- e += (v[i] + v2[i]);
- v[i] = e % 10;
- }
- if(e)
- {
- v.push_back(e);
- }
- }
- void imp(vector < int > &v , int n)
- {
- int i , r = 0;
- for(i = v.size() - 1; i >= 0; i--)
- {
- r = r * 10 + v[i];
- v[i] = r / n;
- r %= n;
- //cout << v[i] << " " << r << " ";
- }
- for( ; v.size() > 1 && v[v.size() - 1] == 0 ; )
- {
- v.pop_back();
- }
- cout<<"imp ";
- for(i = 0; i < v.size(); i++)
- {
- cout << v[i] << " ";
- }
- cout<<endl;
- }
- int main()
- {
- int n;
- cin >> n;
- while(n)
- {
- cifren.insert(cifren.begin(), n % 10);
- n /= 10;
- }
- int p = 1;
- int i, j;
- for(i = 0; i < cifren.size(); i++)
- {
- cout << cifren[i];
- }
- cout << '\n';
- for(i = 0; i < 5; i++)
- {
- while(coeficienti[i])
- {
- produs.insert(produs.begin(), coeficienti[i] % 10);
- coeficienti[i] /= 10;
- }
- cout << "\ncifre coeficienti: ";
- for(j = 0; j < produs.size(); j++)
- {
- cout << produs[j];
- }
- cout << '\n';
- cout << "i: " << i + 1 << '\n';
- for(j = 0; j < p; j++)
- {
- prod(produs, cifren);
- cout << "p: " << j + 1 << " ";
- for(int k = 0; k < produs.size(); k++)
- {
- cout << produs[k];
- }
- cout << '\n';
- }
- cout << "produs nou: ";
- reverse(produs.begin() , produs.end());
- for(j = 0; j< produs.size(); j++)
- {
- cout << produs[j];
- }
- cout << '\n' << "produs: ";
- for(j = 0; j < produs.size(); j++)
- {
- cout << produs[j];
- }
- cout << '\n';
- adunare(suma, produs);
- p++;
- produs = vector < int > (0);
- cout << "suma: ";
- for(j = 0; j < suma.size(); j++)
- {
- cout << suma[j];
- }
- cout << '\n';
- }
- //reverse(suma.begin() , suma.end());
- for(j = 0; j < suma.size(); j++)
- {
- cout << suma[j];
- }
- cout << '\n';
- imp(suma , 120);
- for(i = 0; i < suma.size(); i++)
- {
- cout << suma[i];
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement