Я новичок здесь и на самом деле
У меня в голове проблема, и это так:
Я получаю входной сигнал вектора любого размера, но дляв этом случае, давайте возьмем это:
vetor = {1, 2, 3, 4}
Теперь все, что я хочу сделать, это взять эти числа и сложить каждое из них (учитывая, что это единица, десятки, сто, тысячи) и зарегистрировать результат вцелочисленная переменная, для случая 'int vec_value'.
Учитывая вектор, указанный выше, ответ должен быть: vec_value = 4321.
Я оставлю main.cpp прикрепленным к сообщениюОднако я расскажу вам, как я рассчитал результат, но он дал мне неправильный ответ.
vetor[0] = 1
vetor[1] = 2
vetor[2] = 3
vetor[3] = 4
результат должен быть = (1 * 10 ^ 0) + (2 * 10 ^1) + (3 * 10 ^ 2) + (4 * 10 ^ 3) = 1 + 20 + 300 + 4000 = 4321.
Программа дает мне решение как 4320, и еслиЯ изменяю значения случайным образом, ответ следует за новыми значениями, но с неправильными числами.
Если бы кто-нибудь мог взглянуть на мой код, чтобы увидеть, что я делаю неправильно, я быочень ценю!
Спасибо ..
В конце поста есть ссылка на изображение, показывающее пример неправильного результата.Имейте в виду, что иногда программа дает мне правильный ответ (что делает меня более запутанным)
Код:
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <vector>
#include <cmath>
using namespace std;
int main()
{
vector<int> vetor;
srand(time(NULL));
int lim = rand() % 2 + 3; //the minimum size must be 3 and the maximum must be 4
int value;
for(int i=0; i<lim; i++)
{
value = rand() % 8 + 1; // I'm giving random values to each position of the vector
vetor.push_back(value);
cout << "\nPos [" << i << "]: " << vetor[i]; //just to keep in mind what are the elements inside the vector
}
int vec_value=0;
for(int i=0; i<lim; i++)
{
vec_value += vetor[i] * pow(10, i); //here i wrote the formula to sum each element of the vector with the correspondent unity, tens, hundreds or thousands
}
cout << "\n\nValor final: " << vec_value; //to see what result the program will give me
return 0;
}
Пример программы