Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Операция '+' 
:(
    Опции темы
kleks
Дата 19.3.2006, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 6.10.2005

Репутация: нет
Всего: нет



Имеются две строки, являющимися цифрами, как сложить эти строки чтобы получить правильный результат не преобразовывая строки в числа, например:

"0.005" + "0.0001" = "0.0051" (могут быть и целые числа)

Даже не знаю с чего начать... smile smile smile
заранее благодарен...
PM MAIL   Вверх
Partizan
Дата 19.3.2006, 01:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 4
Всего: 67



поразрядное сложение начиная с конца строк,представляющих числа,где разряд обпределяется исходя из длины строки....всё просто...



--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
MAKCim
Дата 19.3.2006, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



переведи в double/float, сложи, затем обратно в строку, функции для этого есть


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
kleks
Дата 19.3.2006, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 6.10.2005

Репутация: нет
Всего: нет



Цитата(MAKCim @ 19.3.2006, 12:01)
переведи в double/float, сложи, затем обратно в строку, функции для этого есть

smile как раз сложность заключается в этом - переводить строки в числа нельзя smile
я вроде в первом посте писал об этом...
Добавлено @ 12:23
Цитата

поразрядное сложение  начиная с конца строк,представляющих числа,где разряд обпределяется исходя из длины строки....всё просто...

А можно не много поподробнее... smile
PM MAIL   Вверх
np9mi7
Дата 19.3.2006, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: 5
Всего: 10



Цитата
А можно не много поподробнее...
, как в первом классе - столбиком;


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
Athlon
Дата 19.3.2006, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 15.1.2006
Где: Украина:: Запорож ье

Репутация: нет
Всего: нет



а какие могут быть сложности с поразрядным сложением?
проверил наличие в числе(строке) точки, т.е. определил где единицы, десятки, а где десятые, сотые и
Цитата

как в первом классе - столбиком;

PM MAIL ICQ   Вверх
MAKCim
Дата 19.3.2006, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



сначала делаем дробную часть чисел одинаковой
далее
Код

void sum(const char* a, const char* b, char devider)
{
    //выделяем память для результата ( max(length(a),length(b))+1 ), указатель в res
    int i__=length(a)-1, j=length(b)-1, ost=0, 
        k=i>j+1? i+1: j+1;
    const int convert=48;
    for (; i>=0 && j>=0; i--, j--, k--)
    {
        if (a[i]!=devider)
        {
            int s=a[i]+b[j]-2*convert+ost;
            res[k]=s%10+convert;
            ost=s/10;
        }
        else res[k]=devider;
    }
    for (; i>=0; i--, k--)
    {
        int s=a[i]-convert+ost;
        res[k]=s%10+convert;
        ost=s/10;
    }
    for (; j>=0; j--, k--)
    {
        int s=a[j]-convert+ost;
        res[k]=s%10+convert;
        ost=s/10;
    }
    if (ost) res[k]=ost+convert;
}


Это сообщение отредактировал(а) MAKCim - 19.3.2006, 14:11


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
kleks
Дата 28.3.2006, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 6.10.2005

Репутация: нет
Всего: нет



MAKCim спасибо огромное!!! правда я пока не совсем разобрался...отсюда вопрос: что есть переменная devider???
PM MAIL   Вверх
Partizan
Дата 28.3.2006, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 4
Всего: 67



разделитель судя по всему( точка или запятая)...


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
MAKCim
Дата 28.3.2006, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата

разделитель судя по всему( точка или запятая)...

да


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.