Добавление двух строк, которые представляют числа в C ++ - PullRequest
0 голосов
/ 02 февраля 2020

Мне нужно написать строку функции add (строка a, строка b), где a и b - строки, представляющие целые числа, а функция add (a, b) возвращает строку, представляющую их сумму. Строки a и b могут содержать не более 100 символов.

Я пробовал разные способы, но не смог, вот где я сейчас стою. Поэтому я взял 2 строки и попытался добавить каждую ди git, начиная с последней. Если в массиве в [i] больше 10, то добавьте 1 к [i-1] и измените его на 10, чтобы получить последний di git.

Возвращение пусто:

string add(string a, string b){


 int arrA[a.length()];
    int arrB[b.length()];
    string Res=" ";


//99999999 2222222
if(a.length()>=b.length()){
    //i=7
    for (int i=b.length();i>=0;i--){
    arrA[i] = (int) (a[i]-'0') + (int) (b[i]-'0');
    }

         for(int i=b.length()-1;i>=1;i--)    
         Res[i]=arrA[i];

    for(int i=a.length()-1;i>=1;i--){

        if (arrA[i]>=10){
    arrA[i]=arrA[i]%10;
    arrA[i-1]=arrA[i-1]+1;}
    }
}
else{

    for (int i=a.length();i>=0;i--){
    arrB[i] = (int) (a[i]-'0') + (int) (b[i]-'0');
   }

         for(int i=b.length()-1;i>=1;i--)
         Res[i]=arrB[i];

    for(int i=b.length()-1;i>=1;i--){
        if (arrB[i]>=10){
    arrB[i]=arrB[i]%10;
    arrB[i-1]=arrB[i-1]+1;}
    }

}
  return Res;

}

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 02 февраля 2020

Подумайте, как бы вы сделали это карандашом и бумагой, затем напишите код, чтобы сделать то же самое.

У вас есть две строки цифр. Начните с вправо , добавьте две цифры и, если результат переполнится, вычтите 10 и обратите внимание, что у вас есть перенос. Сохраните полученную ди git. Переместить одно место влево. Повторите, пока не сделано. Если у вас заканчиваются цифры в одной строке, просто представьте, что у вас есть нули для остальных цифр.

Обратите внимание, что каждый ди git во входных данных представляет собой символьное представление из ди git. Чтобы получить числовое значение c, вычтите '0' из каждого ди git. Получив результат, преобразуйте его в символ, добавив '0'.

0 голосов
/ 03 февраля 2020
string add(string a, string b) {
    int c = stoi(a) + stoi(b);
    return to_string(c);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...