![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 19.04.2010
Сообщений: 16
|
![]()
Добрый день, задача состоит в следующем.
При использовании чисел типа 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. Теперь можно реализовывать функцию вычисления чисел Фибоначчи. Это задание творческое и не тривиальное. Подумайте внимательно над реализацией дан-ной программы. --------------- Заранее благодарен... |
![]() |
![]() |
![]() |
#2 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
напишите мне, ICQ 395-546-218
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Числа Фибоначчи. | 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 |