Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2011, 17:01   #1
frixer
Пользователь
 
Регистрация: 19.04.2010
Сообщений: 16
По умолчанию C++ 1.3.9. Точное значение числа Фибоначчи

Добрый день, задача состоит в следующем.
При использовании чисел типа int и long разрядной сетки процессора не хватает, а при использовании типа double (самого точного стандартного типа данных) значение числа получается приближенным. Компьютер штука очень ограниченная и дискретная, она не может автоматически подбирать разрядную сетку числа так, как ей захочется. По крайней мере, пока Вы этого не запрограммировали.
Цель данного задания как раз таки вычислить точное значение числа Фибоначчи номер 100. С одной стороны это число имеет порядок 21, и равно приближенно 3.5•1020. С другой стороны получить точное значение можно лишь с использованием целочисленной арифме-тики. Таким образом, нам необходимо длинное целое, в которое вмещается как минимум 21 десятичная цифра. Это можно сделать в виде массива, например char.
Проанализировав внимательно код программы fib1.c можно выделить какие операции нам необходимы. Нам нужно:
1. Сделать функцию сложения двух десятичных чисел представленных в виде массивов c помещением результата в третий массив. Для реализации этой операции создадим функцию arr_add, которая принимает в качестве входных параметров 3 массива (2 слагаемых и их сумма) и их размерность (целое число). Вспомните, как Вы осуществ-ляете сложение чисел в столбик. Реализуйте данную функцию аналогично.
2. Сделать функцию копирования чисел. Для этого сделаем функцию arr_cpy прини-мающую на входе два массива (входной и выходной) и, опять же размерность массивов.
3. Функцию присвоения числу начального значения. Это необходимо для начальных присвоений вместо f1=1. При этом надо обнулить все разряды, кроме самого младшего, в который необходимо записать значение 1.
4. Функцию печати числа на экране. В эту функцию будет передаваться массив и его размерность. Выдать на экран надо весь массив в символьном представлении (то есть надо к каждому значению, хранящемуся в массиве прибавить код символа ’0’, тогда Вы как раз получите код символа, соответствующего данной цифре). Для вывода на экран одного символа при помощи функции printf воспользуйтесь форматом ”%c”.
5. Теперь можно реализовывать функцию вычисления чисел Фибоначчи.
Это задание творческое и не тривиальное. Подумайте внимательно над реализацией дан-ной программы.
---------------
Заранее благодарен...
frixer вне форума Ответить с цитированием
Старый 13.03.2011, 19:13   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

напишите мне, ICQ 395-546-218
rrrFer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Числа Фибоначчи. valiaam55 Помощь студентам 2 19.11.2010 19:16
Числа Фибоначчи zerc Помощь студентам 1 22.10.2010 19:50
Числа Фибоначчи vasyapupkin Помощь студентам 3 12.04.2010 11:27
Подбор параметра не точное значение magana Microsoft Office Excel 0 23.03.2010 22:24
Числа Фибоначчи imera Паскаль, Turbo Pascal, PascalABC.NET 8 17.01.2009 22:01