Добавление двух больших целых чисел через массив C++?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Добавление двух больших целых чисел через массив C++?

Сообщение Anonymous »

Я пытаюсь создать программу, которая принимает два больших целых числа, помещает их в массив строк, затем складывает значения, читает и распечатывает их в правильном порядке, но у меня возникает немало проблем. Например, один из моих тестов 4321+765 должен вернуть 5086, но говорит: «Сложение невозможно», и я немного не понимаю, как это сделать. Прошло много времени с тех пор, как я много занимался алгоритмами, поэтому пытаюсь лучше в этом освоиться. Вот мой код:

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

#include 
#include 
using std::string, std::cout, std::endl; //Include for debug outputs

#include "bigInt.h"

Any advice would be much appreciated! It seems I'm messing up somewhere with the logic for the carry but I can't figure out how...

char character(int x) {
// Converts integer 0-9 to corresponding character '0-9'
return '0' + x;
}

int number(char ch) {
// Converts character '0-9' to corresponding integer 0-9 by subtracting ASCII value of 0
if (ch >= '0' && ch  nB ? nA : nB;
if (maxLen + 5 > nC) {
return false; // Insufficient space
}

// Initialize carry and index variables
int carry = 0;
int k = 0;
for(int i=0;i 0; ++i) {
int digitA = i < nA ? A[i] : 0;
int digitB = i < nB ? B[i] : 0;
int sum = digitA + digitB + carry;
carry = sum / 10; // Determine the carry for the next iteration
C[k] = sum % 10; // Store the result digit
k++;
}

// Update the length of the result array
nC = k;
reverseArray(C,nC);

return true; // Addition successful
}

bool fromStringToArray(const string& str, int A[], int size, int& n) {
n = str.length();
cout

Подробнее здесь: [url]https://stackoverflow.com/questions/78537483/adding-2-big-integers-via-c-array[/url]
Ответить

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

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

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

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

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