Форум программистов, компьютерный форум, киберфорум
Наши страницы

Вычислить глубину рекурсии и итеративного способа вычисления - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сумма в строках двумерного массива http://www.cyberforum.ru/cpp-beginners/thread545726.html
Задача такая: в массив записываются данные о продажах за каждый месяц за три года. Нужно ввести эти данные с клавиатуры, сохраняя их в двумерном массиве (3*12) и вывести количество проданных (скажем...
C++ Как преобразовать строку цифр в число? Как преобразовать строку цифр в число? http://www.cyberforum.ru/cpp-beginners/thread545706.html
Операции над целыми множествами. C++
Должно быть: ввод, вывод, копирование, сложение множеств (+), пересечение множеств (*), разность (-), добавление в множество, проверка вхождения в множество. (Элементы хранятся в отсортированном...
Помогите сделать программу C++
помогите пожалуйста придумать программку на с++ по теме "оптимизация циклов"
C++ Не компилируется: что не так с конструктором структуры? http://www.cyberforum.ru/cpp-beginners/thread545676.html
Есть некий класс - односвязный линейный список, с элементами типа TElem. Шаблонность здесь только чтобы хранить различные объекты в списке и собственно эта же шаблонность и приводит к ошибке при...
C++ Определить двухмерную матрицу целочисленных элементов int максимальным размером 20*20 1.Определить двухмерную матрицу целочисленных элементов int максимальным размером 20*20. 2.В диалоге запросить размер обрабатываемой матрицы или завершение работы программы. 3.Ввести матрицу... подробнее

Показать сообщение отдельно
diaryofsummer
1 / 1 / 0
Регистрация: 19.02.2012
Сообщений: 31

Вычислить глубину рекурсии и итеративного способа вычисления - C++

12.04.2012, 01:54. Просмотров 3758. Ответов 5
Метки (Все метки)

помогите пожалуйста вычислить глубину рекурсии и итеративного способа вычисления

программа вычисляет элементы последовательности:
a(0)=1;
a(n)=a(n div 2)+a(n div 3), n>1;

для итеративного способа, я так понял, глубина равна 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
31
32
33
34
35
#include "stdafx.h"
#include <conio.h>
#include <iostream>
using namespace std;
 
int formula(int n)
{
    if (n<0)              
    {
        cout<<"error";
        getch();
        exit(1);        
    } 
    if (n==0) return 1;  
    return formula(n/2)+formula(n/3);    
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n;
    int i;
    cout<<"n = ";
    cin>>n;
    cout<<"recursivno: result = "<<formula(n)<<"\n";         
           
// здесь начинается итеративный способ 
    int *results = new int[n+1];                       
    results[0] = 1; 
    for (int i=1; i<n+1; i++) 
        results[i]=results[i/2]+results[i/3]; 
    cout <<"iterativno: result = "<<results[n]<<endl;   
    delete [] results;
           getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru