Dodawanie tablic

0

Witam ma ktoś może pomysł jak dodać tablice dynamiczną typu wektor, lub zwykłą z perspektywy całości, a nie elementów np: a[3]={9,8,7} + b[3]={7,8,9}--->987+789 =1776 Czy zostaje mi tylko napisać algorytm na pisemne dodawanie tablic.

0

Czyli aby dodać te kontenery muszą być w typie valarray ? wektorów nie idzie dodać ? napisz kod używający tych valarray bo nie bardzo łapie.

1

@Madaless Coś takiego?

1

Możesz też policzyć na piechotę:

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    vector<int> v1{ 1,2,3 };
    vector<int> v2{ 4,5,6 };
    int sum1{};
    int sum2{};
    int multiplier{ 10 };
    int j = 1;
    for (auto crit = v1.crbegin(); crit != v1.crend(); ++crit) {
        sum1 += *crit * j;
        j *= multiplier;
    }

    j = 1;
    for (auto crit = v2.crbegin(); crit != v2.crend(); ++crit) {
        sum2 += *crit * j;
        j *= multiplier;
    }
    cout << sum1 + sum2 << '\n';
} 

Albo tak zmodyfikować:

#include <iostream>
#include <vector>
using namespace std;

int operator+(const vector<int>& v1, const vector<int>& v2) {
    int sum1{};
    int sum2{};
    int multiplier{ 10 };
    int j = 1;
    for (auto crit = v1.crbegin(); crit != v1.crend(); ++crit) {
        sum1 += *crit * j;
        j *= multiplier;
    }

    j = 1;
    for (auto crit = v2.crbegin(); crit != v2.crend(); ++crit) {
        sum2 += *crit * j;
        j *= multiplier;
    }
    return sum1 + sum2;
}

int main()
{
    vector<int> v1{ 1,2,3 };
    vector<int> v2{ 4,5,6 };
    
    cout << v1 + v2 << '\n';
} 
1

Trochę uprościłem poprzedni kod dopisując funkcję zwracającą wartość int, którą można zapisać do zmiennej:

#include <iostream>
#include <vector>
using namespace std;

int vectorOfDigitsAsNumber(const vector<int>& vec) {
    int sum{ 0 };
    int multiplier{ 10 };
    int j{ 1 };
    for (auto crit = vec.crbegin(); crit != vec.crend(); ++crit) {
        sum += *crit * j;
        j *= multiplier;
    }
    return sum;
}

int operator+(const vector<int>& v1, const vector<int>& v2) {
    return vectorOfDigitsAsNumber(v1) + vectorOfDigitsAsNumber(v2);
}

int main()
{
    vector<int> v1{ 1,2,3 };
    vector<int> v2{ 4,5,6 };

    cout << v1 + v2 << '\n';
} 

0 użytkowników online, w tym zalogowanych: 0, gości: 0