Форум программистов, компьютерный форум CyberForum.ru

Рекурсивная процедура вычисления n-го числа Фибоначчи - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ ifstream, ofstream и объекты класса http://www.cyberforum.ru/cpp-beginners/thread539390.html
Доброго времени суток, помогите пожалуйста разобраться. Есть некий класс: class Tr { public: Tr(){} ~Tr(){} private:
C++ Задача чтения и записи текстовых файлов Необходимо считать текст из файла, обработать его, и записать в файл, но не получается даже скопировать из одного файла в другой, не могу разобраться почему, помогите, пожалуйста. Прогу делаю на Borland C++ v 3.1 Вот, что пока получилось #include <stdio.h> #define BSIZE 200 int main(){ char base; FILE *in, *out; in=fopen("123.txt","r"); http://www.cyberforum.ru/cpp-beginners/thread539389.html
Помогите найти и исправить ошибку в очереди. C++
Здравствуйте. Вот написал очередь, но работает не совсем корректно. Удаляет "голову очереди" вроде бы правильно, но после добавления "хвоста" в очереди появляются непонятно какие элементы. Помогите пожалуйста найти ошибку. #include <iostream> #include <conio.h> #include <locale> using namespace std; void main() { setlocale (LC_ALL, "Russian");
Строковые типы данных (не получается) C++
Не могу написать алгоритм, текст программы: Дан текст, состоящий не менее чем из пяти слов. Вывести на экран слова, которые имеют одинаковые окончания "ИЯ","ИСТ","ИКА". #include <iostream> #include <string.h> using namespace std; void main () { int const n=100, kol=10; typedef char String ; String s, mas ; cout<<"Vvedite stroku: ";
C++ vector http://www.cyberforum.ru/cpp-beginners/thread539363.html
подскажите , что не так int s=10; vector <vector<string>> B; for(int i=0; i < s; ++i) { for(int r=0; r < 1; ++r) { B=E; }
C++ Написание визуальных программ Изучаю C++ уже год, так и не понял, как делать визуальные программы. Работал только с консольными. Не подскажите, как визуализировать?) подробнее

Показать сообщение отдельно
System16v
 Аватар для System16v
3 / 3 / 0
Регистрация: 19.02.2014
Сообщений: 115
20.03.2015, 12:17     Рекурсивная процедура вычисления n-го числа Фибоначчи
А может кто объяснить принцип вычисления рекурсивной функции?Пример тоже взял из книги,но не могу понять принципа ,а именно вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <iostream>
#include <cstdlib>
#include <iomanip>
 
using namespace std;
 
unsigned long fibonacci(unsigned long);
 
int main()
{
        for(int counter=0;counter<=10;counter++)
        cout << "fibonacci(" <<counter << ") = " << fibonacci(counter) << endl;
 
        cout << "fibonacci(20) = " << fibonacci(20) << endl;
        cout << "fibonacci(30) = " << fibonacci(30) << endl;
        cout << "fibonacci(35) = " << fibonacci(35) << endl;
 
        system("pause");
        return 0;
}
unsigned long fibonacci(unsigned long number)
{
        if((number==1)||(number==0))
                return number;
        else
                return fibonacci(number-1)+fibonacci(number-2);
}
Интересует как функция считает?Я понимаю так,что для единицы и нуля она присваивает 0=0,1=1,а потом для 2 присваивает уже подставленные значения из return(если не так поправьте) значение 0 и 1,т.е. 2=0+1=1,3=1+1=2 и т.д. И интересует как функция посчитала просто значение 20,30,35? Ведь у нее нет же предыдущих значений 18,19,28,29,34,35? Или функция чтоб выдать правильный ответ сама считает по порядку дальше от 10ти до 20 и выдает ответ,потом от 20 до 30 и выдает ответ,и от 30 до 35 и выдает ответ,но просто значения предыдущих не выводит?Просто если не так,то тогда вообще не врубаюсь откуда она берет тогда предыдущие значения для вычислений.
 
Текущее время: 22:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru