Рекурсивный И Итеративный Метод

Тема в разделе "C/C++/C#", создана пользователем diaryofsummer, 8 апр 2012.

  1. diaryofsummer

    diaryofsummer Гость

    Репутация:
    0
    помогите пожалуйста написать программу для итеративного способа вычисления.
    нужно вычислить элементы последовательности

    a(n) = a(n div 2) + a(n div 3), n>1
    a(0)=1

    я написал программу для рекурсии, а как через цикл задать не могу сообразить...

    Код:
    #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<<" = "<<formula(n);
    
    getch();
    return 0;
    }
     
  2. Whatka

    Whatka Well-Known Member

    Репутация:
    0
    Регистрация:
    9 окт 2011
    Сообщения:
    428
    Симпатии:
    4
    вообще рекурсия решается (преобразовывается)так ,
    чтобы энный эллемент выражался через известный (нулевой в данном случае)

    и тогда цикл пишется очень просто
     

Поделиться этой страницей