![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Dzo |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 22.4.2008 Репутация: 1 Всего: 1 |
Сначала кусочки кода.
Функция сложения двух BigInt
Функция вычитания:
Karatsuba algorithm:
Проблема в следующем, что вроде все работает, но например если A = 46907104279396844685534662588027 (base = 10^4) B = 27814373078049346316783187585969 Result = 1304691698438108879726626703151282372117941977066919804092593163 Все ок, а если A = 23868885311265469252694810491357 B = 17831413929796672871197506987660 То выдает следующее
Не могу никак понять, где тупняк : ((( Помогите! |
||||||||
|
|||||||||
| Dzo |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 22.4.2008 Репутация: 1 Всего: 1 |
Так, я нашел источник ошибки...
Если происходит так, что A.length() < B.length() то дальше по рекурсии число делится на составляющие части и получается ошибка при получение доступа к индексу, которого в числе то нет : ) Пофиксил так:
Возник совсем простой вопрос - мой метод смены значений переменных друг с другом совсем быдлокодерский? |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |