Здесь я предоставляю свой код
Код: Выделить всё
#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]
Мобильная версия