vector<int> add_vectors(const vector<int> &first, const vector<int> &second){
vector<int> result;
int length = 0;
int carry = 0;
int firsts_size = first.size();
int seconds_size = second.size();
if (firsts_size >= seconds_size){
int length = firsts_size;
}
else{
int length = seconds_size;
}
for (int i = length - 1; i >= 0; i--){
int digit_sum = first[i] + second[i] + carry;
if (digit_sum > 9){
carry = ((digit_sum/10) % 10);
}
result.push_back(digit_sum);
}
return result;
}
Так что, ребята, вы все помогли мне пару раз, и я надеюсь, что вы снова можете сделать то же самое для меня. Таким образом, цель этой функции в программе на C++ состоит в том, чтобы взять два вектора с цифрами, взятыми из больших чисел, и добавить их вместе и создать вектор в конце с суммой, возвращаемой из функции. Тем не менее, у меня проблема с этим, и я не могу сказать, является ли это проблемой с тем, как я сделал фактическое дополнение или каким-то образом я распечатываю их в своей основной.Проблемы с векторным алгоритмом возврата/сложения
Я создал другую функцию, чтобы взять вектор, состоящий из цифр, и превратить его в строку для вывода на печать в качестве вывода, и я знаю, что эта функция работает, потому что она очень много работает в моей программе. Поэтому я убежден, что что-то происходит с этой функцией и не позволяет мне печатать. Тем не менее, Visual Studio не бросает никаких ошибок из этого или чего-либо еще, просто то, где предполагается, что выход должен быть пустым, что оставило меня в тупике. Любая помощь очень ценится !! Просто запомните одну вещь, так как это первая программа из моего класса, я не могу использовать что-либо слишком продвинутое, чтобы решить эту проблему. Спасибо за помощь
Алгоритм не ясен. Для числа 12345 вектор сначала [0] равен 1 или 5? Лучше иметь его 5 (сопоставить индекс цифры в векторе с соответствующей мощностью 10). Более того, длина позиции ваших векторов будет идти в позицию 0 вашего результата ... вы намеренно возвращаете порядок исходных векторов в векторе результата? – sebas
Посмотрите, что цель состояла в том, чтобы я сделал что-то вроде этого: vector1 = 1234 vector2 = 5678, затем добавив их вместе, но причина, по которой я начинаю с 4 вместо 1, - начинать с одной цифры и с десятками цифр добавить перенос, если он есть. Тогда у меня есть функция для изменения числа в конце – NDIrishman23
Если у вас есть эта функция, чтобы отменить номер, сделайте это раньше, чтобы перейти к функции, которую я размещаю ниже, а затем повторю ее после функции. У вас будут векторы в том порядке, в котором вы хотите. – sebas