|
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
|
||||||
Числа Фибоначчи: иногда выводятся отрицательные значения11.10.2008, 10:27. Показов 55921. Ответов 20
Метки нет (Все метки)
У меня вот какая проблема: Числа Фибоначчи определяются рекуррентной формулой:
f0 = 0; f1 = 1; fn = fn-1 + fn-2; Начало последовательности имеет вид 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ... . Входные данные: В единственной строке находится число N (0 <= N <= 10000). Выходные даны: Выведите N-те число Фибоначчи. Пример введения 7 Пример выведения 13 я програмку написал, но она мне иногда выводит отрецательные числа...подскажите что мне сделать, что бы ета программа корректно работала. вот и она:
0
|
||||||
| 11.10.2008, 10:27 | |
|
Ответы с готовыми решениями:
20
Выводятся большие отрицательные числа
|
|
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
|
|
| 11.10.2008, 10:42 | |
|
Знакомая история... Просто переменная выходит за допустимый диапазон своего типа, вот число и отрицательное... Попробуй воспользоваться типом unsigned long int или unsigned long double... Думаю его хватит...
0
|
|
|
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
|
|
| 11.10.2008, 10:55 [ТС] | |
|
сделал так, но числа выводятса меньшие, чем когда я напишу unsigned long long, как тип массива......но что так, что так, ответ одинаков:Неверный ответ
![]() и что не делал уже, все равно корректно не работает....
0
|
|
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 11.10.2008, 11:23 | |
|
Tengel, я недавно писал прогу по остаткам от деления чисел фибоначчи на большие числа, хватало long long, но там алгоритм очень замороченный, а вам для вычисления даже двухтысячного числа 80 бит(long double) ну никак не хватит... либо ищите библиотеки для работы с большими числами, либо ограничьтесь 1000...
0
|
|
|
V.A.M
|
|
| 14.10.2008, 21:34 | |
|
Poprobuy ispolzovat' clojenie dlinnix dvux chisel' s ispolzovaniem String, Esli tebe nujn@ ya moga dat' tebe code dlya clojenita dlinnix chisel' (okolo ~ 250 cimvolov). Make that as function with 2 arguments...
|
|
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
||||||
| 15.10.2008, 09:37 | ||||||
|
вот тебе рабочий код на любой фибоначчи:
3
|
||||||
|
LeshKing
|
||||||
| 21.03.2014, 18:34 | ||||||
|
Зачем столько сложностей?
|
||||||
|
209 / 183 / 114
Регистрация: 15.03.2014
Сообщений: 398
|
||
| 22.03.2014, 19:31 | ||
|
Ваш код для этого не подойдет. Lord_Voodoo, думаю, что Ваш код содержит ошибку. Проверяя результаты программы для разных чисел нашел несоответствие с таблицами чисел Фибоначчи. Вот работа программы 1) 100 573147844013817084101 2) 200 4539736941653079531972969696974106192338 26 Вот данные из таблицы чисел Фибоначчи, а также из проекта wolframalpha. Ф(100)=354224848179261915075 Ф(200)=280571172992510140037611932413038 677189525
0
|
||
|
Почетный модератор
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
| 23.03.2014, 10:47 | |
|
BlackSpace, ну спорить не буду, но код тоже проходил тестирование и на скорость, и на емкость... не помню, как ресурс называется... если есть ошибка, то извиняйте...
0
|
|
|
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 1
|
||||||
| 29.05.2017, 15:01 | ||||||
|
самый изи вариант!!! тока с большими числами не работает
0
|
||||||
|
193 / 100 / 131
Регистрация: 23.06.2015
Сообщений: 249
|
||||||
| 29.05.2017, 16:07 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 16
|
|
| 24.02.2018, 18:00 | |
|
Я конечно не специалист, но по-моему проблема только в том, что в скобках условия указано N<0 N>10000
А по условию надо N>0 и N <10000. Тогда не будет отрицательных чисел
0
|
|
|
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 20
|
||||||
| 07.02.2019, 09:25 | ||||||
0
|
||||||
|
209 / 183 / 114
Регистрация: 15.03.2014
Сообщений: 398
|
|
| 07.02.2019, 13:10 | |
|
Georgiy1108, проще в каком отношении?
Если внимательно прочитаете условие ТС и сообщения из данной темы, то увидите, что подход аналогичный Вашему уже предлагался и пояснялось почему такой подход не способствует решению задания ТС. Ваш код никак не подходит для решения задания, поставленного ТС. Ваша программа выдаст абсолютно неверный результат, если попробовать найти, к примеру сотое число Фибоначчи. Настоящее сотое число Фибоначчи = 354224848179261915075. Ответ Вашей программы = -980107325.
0
|
|
|
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 20
|
|
| 08.02.2019, 19:49 | |
|
Ну тут либо длинная арифметика, либо на питоне писать, я это написал к тому, что не обязательно хранить весь массив.
Добавлено через 48 секунд Да точно было такое
0
|
|
|
0 / 0 / 0
Регистрация: 12.02.2019
Сообщений: 2
|
||||||
| 13.02.2019, 02:22 | ||||||
|
Ужасный язык... Строки адекватно перезаписывать не хочет, зато написал немного по другому - стал перезаписывать (но тоже самое).
На этапе теста запустил с n=200 - код отработал 2 секунды и закончился, ничего не получив. Пару раз так запустил - ничего. Подождал минутку - начал запускать по порядку: 100 - работает. 120 - работает. 150 - работает. 180 - работает. 190 - работает. 200 - работает. 9999 - работает. Оп, что? 200 уже работает? Вот как это обьяснить? Почему он сразу не захотел работать? Вообще интересно, что скажет знающий человек по поводу такого кода.
0
|
||||||
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
|||||||||||||||||||||||||||
| 13.02.2019, 14:06 | |||||||||||||||||||||||||||
|
Сложение идет через представление чисел строками. Ладно бы еще массивом цифр, но строками! Внутри функции сложения выделяется память аж под 3 строки (зачем???), а потом не освобождается. У вас что, память девать некуда? Добавлено через 1 час 8 минут Вариант с ручной реализацией длинных целых:
Результаты:
1 -> 1 3 -> 2 6 -> 8 10 -> 55 20 -> 6765 50 -> 12586269025 100 -> 354224848179261915075 500 -> 1394232245616978801397243828704072839500 7025658769730726410896294832557162286329 0691557658876222521294125 1000 -> 4346655768693745643568852767504062580256 4660517371780402481729089536555417949051 8904038798400792551692959225930803226347 7520968962323987332247116164299644090653 3187938298969649928516003704476137795166 849228875 2000 -> 4224696333392304878706725602341482782579 8528402506810980102801373143085843701307 0722412359963914151108844608753890960360 7640194711643596029271983312598737326253 5558026069915859152294924539049987222567 9531698287448247299226390183371677806060 7011615497886719879858311468870876264597 3690867228840236544222952433479644801395 1534956297208765265606952980649984197744 8720155612802665404554171717881930324025 204312082516817125 5000 -> 3878968454388325633701916308325905312082 1277146462451061605972148955501390440370 9701082291646221066947929345285888297381 3483102008954982940361430156911478938364 2165639441069102145056341337065586562382 5465670071252592990385493381392883637834 7518908762970712033337052923107693008518 0938498018038478139967488817655546537882 9164426891298038461377896902150229308247 5666346224923071883324803280375039130352 9033045058427011476352422702109346376991 0400671417488329842289149127310405432875 3298044273676822977244987749874555691907 7038806370468327948113589737399931101062 1930814901857081539785437919530561751076 1053075688783766033667355445258844886241 6192105534574936758978490279882343510235 9984466393485325641195222185956306047536 4645470760330902420806382584929156452876 2915757591423438091423029174910889841552 0985443248659407979357131684169286803954 5309545388698114665082066862897420639323 4384884652409887423958738019769938203171 7420893226546887936400263079778005875912 9671389634214252579116872755600360311370 5477547246046399875880469851784086743828 63125 10000 -> 3364476487643178326662161200510754331030 2148460680063906564769974680081442166662 3681555955136337340255820653326808361593 7373479048386526826304089246305643188735 4544369559827491606602099884183933864652 7313000888302692356736131351175792974378 5441375213052050434770160226475831890652 7890855154366159582987279682987510631200 5754287834532155151038708182989697916131 2785626503319548714021428753269818796204 6936097879900350962302291026368131493195 2756302278376284415403605844025721143349 6118002309120828704608892396232883546150 5776583271252546093591128203925285393434 6209042452489294039017062338889910858410 6518317336043747073790855263176432573399 3712871937587746897479926305837065742830 1616374089691784263786242128352581128205 1637029808933209990570792006436742620238 9783111470054074998459250360633560933883 8319233867830561364353518921332797329081 3373264265263398976392272340788292817795 3580570993691049175470808931841056146322 3382174656373212482263830921032977016480 5472624384237486241145309381220656491403 2751086643394517512161526545361333111314 0424368548051067658434935238369596534280 7176877532834823434555736671973139274627 3629108210679280784718035329131176778924 6590899386354593278945237776744061922403 3763867400402133034329749690202832814593 3418826817683893072003634795623117103101 2919531697946076327375892535307725523759 4378843450406771555577905645044301664011 9462580972216729758615026968443146952034 6149322911059706762432685159928347098912 8470674086200858713501626031207190317208 6094081298321581077282076353186624611278 2455372085323653057759564300725177443150 5153960090516860322034916322264088524885 2433158051534849622434848299380905070483 4824493274537326245677558790891871908036 6205800959474315005240253270974699531877 0724376825907419939632265984147498193609 2852239450397071654431564213281576889080 5878318340491743455627052022356484649519 6112460268313970975069382648706613264507 6650746115126775227486215986425307112984 4118262266105716351506926002986170494542 5047491378115154139941550671256271197133 2527636319396069028956502882686083622410 8205056243070179497617112123306607331005 9947366875 11520 -> 1542164414654457324064849007442033848246 8504978285591203051598191082686363546688 9851693383068332752977342925071669931303 9448167692494794733440820258925344931644 8002080188543398794134447459938542286470 4198217404236962599412356972215288007581 0538696636209110020583942191223043131631 6338188752194734223960595814563195209121 5054226947224045268019644260597875135225 8418071465708666978776973519605700169615 2378834866191564322561236153322001522039 3035540320009848011968537270513428883848 2885293328606796062918268752746946855338 7120574575090336630024193142123702671783 4157738326035331997651524442592371874737 4194816328351349810119571810881940752819 9976158165030919676330276956698908925631 9981383522697595355103161721037512524840 3253738366150085733499934196222299871040 3331730870822386838310124191774907896299 1360112734919735755592217796440195220667 2557099441577792728191695707572159770312 0162953159775375397192610153870460198055 7805335730848786477787555780813264476413 2023107773978490888963216055777388581979 1838828585288633960149407149762231870302 7004049291154382461852282301914354270682 0697932912576838692937765925591966333077 6836925832514299544563555278366914746703 4874894184091602283676672014018372183936 2289489511581489033773005161994858419936 6444937730017675270578128929568737521499 8411232094926608883934882589513276536626 8137749787850504104556006212201416969622 2774266728032622474785645676145297938640 9586052547801310449370348312848023895031 9900069816897811277920338620694121367048 8174982387652299142800104730310417558977 7571049371250455208456747470135268806504 7753757387603885290410004455723489244642 7413626521028810891137018291329993484577 5092162680306771482238953314869212084948 2323499151500983094040054382352314533672 3691659997496849683340482900633458756261 3358861511546106565239552939157959797108 3332749980802849034501945876063222319746 5785714511054992418682588962730515990099 0210947634112268335351174766137930261587 6054668342013978594176286935619109455711 4258579382252536275536184158938464408766 8383433127908614251955508659987041856799 7546015639902517964045318753410823683186 1849535424921245057792063996798374041775 2168118221540587848947542385319019482858 4602512147387831567243160820173494582252 7840702203148083582355034601357343113930 1137182568166512888343183364490878984785 2659561711408182043541528957625297134796 5076078377382963609382353046313928164398 4591917298202089512502878318405260451485 50896640 Выше 11524 начинается переполнение.
Проверяем код Crabintron'а:
2
|
|||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 12.02.2019
Сообщений: 2
|
||||||
| 14.02.2019, 02:49 | ||||||
|
COKPOWEHEU, Хм, но в первый раз, по стичению каких-то обстоятельств, результат на n=9999 был получен. Интересно, как такое вообще получилось .) Но суть вашей мысли я понял, благодарю.
Добавлено через 10 часов 29 минут Хм, вроде бы все легко, но почему temp >>= 8; выполняет роль сдвига на 1 разряд в 10ричноый системе? Добавлено через 42 минуты Вообще у вас странный код, вы тоже извращенец, хоть и другой масти. Ваш код излишне перебирает ненужные элементы. Я тут немного переделал код, с учетом ваших замечаний.
А еще можно выдиление памяти поменять с 11101 на n и тогда код будет работать для всех значений, пока физическая память позволяет и при этом на низких значениях будет экономия памяти, под вычисление 10 числа не будет выделяться столько памяти .) А поменять именно на n потому-что при сложении 2 чисел длинна выходного числа может быть длиннее только на 1 разряд. Может есть и более точные алгоритмы вычисления количества цифл в числе фибаначчи, но я такого не знаю.
0
|
||||||
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
|||||
| 14.02.2019, 09:35 | |||||
|
Для сравнения, в моей версии выделяется примерно 2 кБ - на два порядка (десятичных) меньше! По скорости счета мой метод тоже чуть лучше: за одну операцию складываются две 8-битных цифры, в то время как в вашем одна 10-ричная, это примерно в 2.5 раза разница. Вот при вводе-выводе ваш метод проще, поскольку нет необходимости деления.
0
|
|||||
| 14.02.2019, 09:35 | |
|
Помогаю со студенческими работами здесь
20
Используя цикл while или do вычислить числа Фибоначчи до заданного значения
В матрице заменить все отрицательные числа на их абсолютные значения Изменить программу так, чтобы она выводила значения числа Фибоначчи по введённому числу
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|