Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //TP 2018/2019: Tutorijal 3, Zadatak 6
- #include <iostream>
- #include <vector>
- #include <iomanip>
- #include <cmath>
- typedef std::vector<std::vector<int>> Matrica;
- int BrojCifara(int n) {
- int brojac = 0;
- do {
- n /= 10;
- brojac++;
- } while (n);
- return brojac;
- }
- int NajvecaSirina(Matrica m) {
- if (!m.size())
- return 0;
- int najmanji = 0;
- int najveci = m.at(0).at(0);
- for (int i = 0; i < m.size(); i++) {
- for (int j = 0; j < m.at(i).size(); j++) {
- if (m.at(i).at(j) < najmanji)
- najmanji = m.at(i).at(j);
- if (m.at(i).at(j) > najveci)
- najveci = m.at(i).at(j);
- }
- }
- int brojacPoz = BrojCifara(najveci);
- int brojacNeg = BrojCifara(najmanji);
- if (brojacPoz <= brojacNeg)
- return brojacNeg + 1;
- return brojacPoz;
- }
- Matrica KroneckerovProizvod(std::vector<int> v1, std::vector<int> v2) {
- Matrica mat(v1.size());
- for (int i = 0; i < v1.size(); i++) {
- for (int j = 0; j < v2.size(); j++) {
- mat.at(i).push_back(v1.at(i) * v2. at(j));
- }
- }
- return mat;
- }
- int main () {
- int velicinaV1;
- std::cout << "Unesite broj elemenata prvog vektora: ";
- std::cin >> velicinaV1;
- std::cout << "Unesite elemente prvog vektora: ";
- std::vector<int> v1(velicinaV1);
- for (int i = 0; i < velicinaV1; i++)
- std::cin >> v1.at(i);
- int velicinaV2;
- std::cout << "Unesite broj elemenata drugog vektora: ";
- std::cin >> velicinaV2;
- std::cout << "Unesite elemente drugog vektora:" << std::endl;
- std::vector<int> v2(velicinaV2);
- for (int i = 0; i < velicinaV2; i++)
- std::cin >> v2.at(i);
- Matrica m = KroneckerovProizvod(v1, v2);
- int sirina = NajvecaSirina(m);
- for (std::vector<int> v : m) {
- for (int x : v)
- std::cout << std::setw(sirina + 1) << x;
- std::cout << std::endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement