0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 43
|
||||||
1 | ||||||
Длинные фиббоначи28.07.2013, 17:34. Показов 2125. Ответов 37
Метки нет (Все метки)
От нечего делать написал это:
Кликните здесь для просмотра всего текста
Но что-то не так. после вывода оказывается что начиная с 123-го числа выводится неверный результат. а именно теряется один знак. кто может, подскажите, в чём проблема.
0
|
28.07.2013, 17:34 | |
Ответы с готовыми решениями:
37
Фиббоначи. Число Фиббоначи Посчитать число N Фиббоначи Число Фиббоначи (ломается на 46-м) |
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
|
|
28.07.2013, 17:42 | 2 |
Написали бы хотя бы цель программы. А то сидеть просто так разбираться в чье-то коде, да еще и вроде как не правильном нету желания.
0
|
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
|
|
28.07.2013, 17:55 | 3 |
Вам нужно чтоб выводился ряд Фибоначчи?
Не так сказал, короче алгоритм проги: 1.Юзер вводит номер числа из ряда Фибоначчи 2.Это число ему выводится Если да то могу дать исходник, я когда-то такую писал Добавлено через 1 минуту Вот, смотрите: Числа Фибоначчи Добавлено через 3 минуты Очень уж сильно вы код раздули Я когда делал то получилось покороче
1
|
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 43
|
|
28.07.2013, 18:12 [ТС] | 4 |
весь прикол в том, что в ансигнед лонг лонг вмещаются фибоначи до 92-го. Чтобы вывести любое я воспользовался динамическими массивами и длинной арифметикой и вроде бы до 122 числа включительно программа работает правильно (проверял ручками). Но. 123 число выдаёт неверно.
Кликните здесь для просмотра всего текста
118--3311648143516982017180081
119--5358359254990966640871840 120--8670007398507948658051921 121--14028366653498915298923761 122--22698374052006863956975682 123--3672674705505779255899443 Добавлено через 2 минуты Всё должно быть аккуратно, все повторяющиеся действия в функции
0
|
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
|
|
28.07.2013, 18:17 | 5 |
Я когда писал программу (ту же самую что и вы) то она у меня вместила 100% не больше 25-30 строк
И выводила числа из ряда Фибоначчи до 1024 Добавлено через 3 минуты Ммм...Похвально, то что вы не обращаете внимание на длительность написания/длительность кода программы Но я ленивый, и по этому написал как покороче
0
|
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 43
|
|
28.07.2013, 18:22 [ТС] | 6 |
Повторяюсь: Мне было нечего делать
У вас была длинка? или как вы вместили 1024 число? По моей задумке программа должна выдавать (благодаря динамическим массивам) в разы большие числа.
0
|
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
|
|
28.07.2013, 18:30 | 7 |
Очень просто, с помощью цикла for Всё предельно просто
Но я уже забыл как я её делал, но точно знаю то что она была маленькая (исходный код) Ну и про цикл for тоже помню Я то вам почему ссылку на тему кинул, потому что я её (программу которую писал) оказывается удалил Добавлено через 5 минут Я написал и понял что это звучит немного бредово Возможно я вспомню код, вас это интересует?Если что могу позже в личку отправить
1
|
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 43
|
|
28.07.2013, 18:31 [ТС] | 8 |
Да. Буду благодарен.
0
|
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
|
|
28.07.2013, 18:36 | 9 |
проблема в строке 78:
ULLONG_MAX = 18446744073709551615 а у вас a[j+1] может быть равно 9999999999999999999 и ldiv(i,con) тоже 9999999999999999999 что в сумме дает больше чем ULLONG_MAX строка 66 то же самое. возможное решение проблемы: уберите один нолик из переменной con.
0
|
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
|
||||||
28.07.2013, 19:01 | 10 | |||||
Вот, держите
На здоровье P.S. Пример такой же программы есть в книге Липпмана Добавлено через 4 минуты Не по теме: Скрытый намек на спасибо (+1) :D
1
|
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 43
|
|
28.07.2013, 19:16 [ТС] | 11 |
Делал, неточности вычислений появляются раньше
Добавлено через 7 минут Что-то странно... везде интеджеры, не одного массива и до 1024 числа считает? хм...
0
|
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
|
||||||
28.07.2013, 19:34 | 12 | |||||
я и не говорил, что нашел все ошибки, но те баги, что я указал, точно есть в вашей программе.
вот вам еще один баг: функция char cif (int a) непонятно что делает в строках 21-23. догадываюсь, что подсчитывает кол-во цифр в числе, но в качестве счетчика почему-то выступает переменная для хранения числа. и еще: некоторые числа фибоначчи выводятся без некоторых нулей в середине числа. Добавлено через 6 минут глядите сами:
0
|
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
|
||||||
28.07.2013, 19:37 | 13 | |||||
0
|
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
|
|
28.07.2013, 19:39 | 14 |
0
|
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
|
|
28.07.2013, 19:44 | 15 |
ответ из вашей программы
"Введите номер элемента из ряда Фибоначчи: 1023 Значение элемента № 1023 равно -1595087134" где правильный ответ будет 1023 = 45066996336778198131043832357288860493678605962186048308030231496000306457087213 96248792609141030396244873266580345011219530209367425581019871067646094200262285 202346655868899711089246778413354004103631553925405243
0
|
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
|
|
28.07.2013, 19:50 | 16 |
Ахах Как вы посчитали это? *сарказм*
Ну при вводе 1000 вроде бы ответ правильный, по крайней мере без - Значит сфейлился я Ну я думаю что никому не нужно узнавать 1023 номер
0
|
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
|
|
28.07.2013, 19:59 | 18 |
Конечно нет, но большие числа для чего могут понадобится(приведите пример)? Высшая математика? Квантовая физика?
0
|
28.07.2013, 20:06 | 19 |
Даниил1991, тогда по твоей логике, зачем вообще находить числа Фибоначчи, если они не влазят в int? Зачем мне приводить пример? Если у него такое задание и ты не можешь его правильно выполнить, то будешь придираться к назначению этого задания? Может это и надо в высшей математике, тебе какое дело до этого? Это дело ТС, раз есть такое задание, то его нужно выполнить, а не придираться к нему.
0
|
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 43
|
|
28.07.2013, 20:11 [ТС] | 20 |
Этот то баг я и искал! подскажите как поправить? (всё остальное на работоспособность программы не влияет. там беззнаковые переменные.)
ЗЫ функция cif влияет только на вывод.
0
|
28.07.2013, 20:11 | |
28.07.2013, 20:11 | |
Помогаю со студенческими работами здесь
20
Задачка на числа Фиббоначи Определение К-го числа последовательности Фиббоначи Числа Фиббоначи через динамический массив Найти число Фиббоначи с помощью рекурсии Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |