Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сравнить большие числа, от маленьких до немаленьких 
:(
    Опции темы
Fixin
Дата 21.2.2005, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

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



Вот, думаю, названию подфорума соответствует:
Есть два целых числа, записанные в строку (что, вообще-то, неважно). Могут быть отрицательными и/или положительными (что тоже неважно). Нужно сравнить их по модулю, какое больше, какое меньше. То есть превратить их в число нереально. Вычесть из одного другое тоже нельзя. (Для этого-то и сравниваю). Можно по порядкам сравнивать или еще как. Алгоритм я сделаю, вы только опишите, что и как алгоритмизировать. Или расскажите, как сложить или вычесть такие числа, учитывая, что один может быть положительным, другой отрицательным и еще три варианта со знаками.
Стандартная всячина для работы со сверхбольшими числами неподходит.
PM MAIL ICQ   Вверх
Akina
Дата 22.2.2005, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



Нужны правила формирования строкового представления. А вообще так:

1) Обрезаем нецифровые символы спереди и сзади (в т.ч. знак).
2) Обрезаем ведущие нули.
3) Если длины строк разные, больше то число чья строка длиннее.
4) Если длины одинаковы, делаем обычное сравнение строк.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
De Gray
Дата 22.2.2005, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Akina @ 22.2.2005, 09:11)
Обрезаем нецифровые символы спереди и сзади (в т.ч. знак).

Они могут быть в дополнительном дополнительном коде, так что знак может быть явно не задан. В таком случае,
1) Если у обоих 1- ая цифра 0 -- меньше то, у которого 1-ый отличающийся символ меньше.
2)Если у обоих 1- ая цифра 1 -- меньше то, у которого 1-ый отличающийся символ больше.
3) Если знаки разные, то надо
3.1. Знать какое наибольшее число в данном представлении возможно.
3.2. Взять модуль(инвертировать все байты, прибавить 1)
3.3. Сравнить по 1,2
1,2 написаны для строк 1 длинны, если длины разные, то в случае
1) меньше та , что короче,
случай 2) -- невозможен.
Если никакой арифметики с числами производить нельзя -- то отличать можно либо по длинне,
либо по первому отличающемуся символу -- т.е. полностью то, что писал Akina
--------------------
Извяните, шо мы к вас за поможите обращаимси.
PM MAIL   Вверх
Fixin
Дата 22.2.2005, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

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



Угу, попробую... smile
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


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

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


 




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


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

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