Неправильный вывод для частичного умноженияC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Неправильный вывод для частичного умножения

Сообщение Anonymous »

Я попытался реализовать умножение, используя традиционный метод, при котором вы разделяете переносы и частичные значения и складываете их вместе. Но мой код не дает мне правильного вывода. И я застрял в этом коде, задаваясь вопросом, неверна ли моя концепция и понимание этой концепции.

Здесь я предоставляю свой код

Код: Выделить всё

#include
#include

using namespace std;

int main()
{
int A[] = {5, 2, 3, 0, 1};
int B[] = {3, 0, 8};
int size_A = sizeof(A) / sizeof(A[0]); int size_B = sizeof(B) / sizeof(B[0]);
int size_result = size_A + size_B + 1;
int* result = new int[size_result]; // Allocate memory for the array fill(result, result + size_result, 0); // Initialize result array with 0s

for (int i = size_A - 1; i >= 0; i--)
{
for (int j = size_B - 1; j >= 0; j--)
{
int partial = A[i] * B[j];
int position1 = i + j + 1;
int position2 = i + j;

result[position1] += partial % 10; result[position2] += partial / 10;

if (result[position1] >= 10) { result[position1 - 1] += result[position1] / 10; result[position1] %= 10; }

if (result[position2] >= 10) { result[position2 - 1] += result[position2] / 10; result[position2] %= 10; }
}
}

// Normalize the result to remove leading zeros
int startPos = 0;
while (result[startPos] == 0 && startPos < size_result - 1) { startPos++; }

// Print the result
for (int i = startPos; i < size_result; i++)
{ cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78343140/wrong-output-for-partial-multiplication[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»