Advertisement
aed1oN

T3Z6

Mar 29th, 2019
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.76 KB | None | 0 0
  1. //TP 2018/2019: Tutorijal 3, Zadatak 6
  2. #include <iostream>
  3. #include <vector>
  4. #include <iomanip>
  5. #include <cmath>
  6.  
  7. typedef std::vector<std::vector<int>> Matrica;
  8.  
  9. int BrojCifara(int n) {
  10.     int brojac = 0;
  11.     do {
  12.         n /= 10;
  13.         brojac++;
  14.     } while (n);
  15.     return brojac;
  16. }
  17.  
  18. int NajvecaSirina(Matrica m) {
  19.     if (!m.size())
  20.         return 0;
  21.     int najmanji = 0;
  22.     int najveci = m.at(0).at(0);
  23.     for (int i = 0; i < m.size(); i++) {
  24.         for (int j = 0; j < m.at(i).size(); j++) {
  25.             if (m.at(i).at(j) < najmanji)
  26.                 najmanji = m.at(i).at(j);
  27.             if (m.at(i).at(j) > najveci)
  28.                 najveci = m.at(i).at(j);
  29.         }
  30.     }
  31.     int brojacPoz = BrojCifara(najveci);
  32.     int brojacNeg = BrojCifara(najmanji);
  33.     if (brojacPoz <= brojacNeg)
  34.         return brojacNeg + 1;
  35.     return brojacPoz;
  36. }
  37.  
  38. Matrica KroneckerovProizvod(std::vector<int> v1, std::vector<int> v2) {
  39.     Matrica mat(v1.size());
  40.     for (int i = 0; i < v1.size(); i++) {
  41.         for (int j = 0; j < v2.size(); j++) {
  42.             mat.at(i).push_back(v1.at(i) * v2. at(j));
  43.         }
  44.     }
  45.     return mat;
  46. }
  47.  
  48. int main () {
  49.     int velicinaV1;
  50.     std::cout << "Unesite broj elemenata prvog vektora: ";
  51.     std::cin >> velicinaV1;
  52.     std::cout << "Unesite elemente prvog vektora: ";
  53.     std::vector<int> v1(velicinaV1);
  54.     for (int i = 0; i < velicinaV1; i++)
  55.         std::cin >> v1.at(i);
  56.     int velicinaV2;
  57.     std::cout << "Unesite broj elemenata drugog vektora: ";
  58.     std::cin >> velicinaV2;
  59.     std::cout << "Unesite elemente drugog vektora:" << std::endl;
  60.     std::vector<int> v2(velicinaV2);
  61.     for (int i = 0; i < velicinaV2; i++)
  62.         std::cin >> v2.at(i);
  63.     Matrica m  = KroneckerovProizvod(v1, v2);
  64.     int sirina = NajvecaSirina(m);
  65.     for (std::vector<int> v : m) {
  66.         for (int x : v)
  67.             std::cout << std::setw(sirina + 1) << x;
  68.         std::cout << std::endl;
  69.     }
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement