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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2016, 17:25   #1
Vika2016
Пользователь
 
Регистрация: 24.02.2016
Сообщений: 69
По умолчанию Рекурсия

Вот простое решение
Код:
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    int n;
    double s;
    cin >>n;
    double x[n];
    x[0] = 2;
    x[1] = 7;  x[2] = 7;  x[3] = 7;

    if(n>=4){
    for(int i = 4; i<=n;i++){

        x[i] = ((x[i-1] + (4*x[i-2]) * (1+x[i-2]) + x[i-3]) / sqrt(x[i-4]) ) + x[i-4];

        s = x[i];
    }

    }else if(n==0) s = 2;
        else s = 7;
    cout << s;
    return 0;
}
Но решить нужно с применением рекурсии..Помогите как это осуществить
Vika2016 вне форума Ответить с цитированием
Старый 23.11.2016, 19:31   #2
kyle16
Форумчанин
 
Регистрация: 18.12.2015
Сообщений: 141
По умолчанию

А какое задание? Почему не написали условие задачи?
kyle16 вне форума Ответить с цитированием
Старый 23.11.2016, 20:51   #3
Vika2016
Пользователь
 
Регистрация: 24.02.2016
Сообщений: 69
По умолчанию

Вот само задание
Найти нужно Xn
В первом посте есть решение но нужно с рекурсией(
Изображения
Тип файла: png Безымянный111.png (5.0 Кб, 42 просмотров)
Vika2016 вне форума Ответить с цитированием
Старый 23.11.2016, 21:09   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну так и пишите:
Код:
float f(uint32_t i)
{
  switch(i){
    case 0: return 0;
    case 1: case 2: case 3: return 7;
    default:
      return (f(i-1) + 4* ...
  }
}
p51x вне форума Ответить с цитированием
Старый 23.11.2016, 21:43   #5
Vika2016
Пользователь
 
Регистрация: 24.02.2016
Сообщений: 69
По умолчанию

Если так писать то получилось вот такое.. выводит "inf"
Код:
#include <iostream>
#include <cmath>
using namespace std;


double f(int i);

int main()
{
    int n;
    cin>>n;
    cout<<f(n);
    return 0;
}

double f(int i)
{
  switch(i){
    case 0: return 0;
    case 1: case 2: case 3: return 7;
    default:
      return ((f(i-1) + (4* f(i-2)) * (1+f(i-2)) + f(i-3)) / sqrt(f(i-4))) + f(i-4);
  }
}
Vika2016 вне форума Ответить с цитированием
Старый 24.11.2016, 15:23   #6
Vika2016
Пользователь
 
Регистрация: 24.02.2016
Сообщений: 69
По умолчанию

Подскажите кто то пожайлуйста что как должно быть( срочно нужно
Vika2016 вне форума Ответить с цитированием
Старый 24.11.2016, 15:46   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Так все правильно ж выводит. Подумайте, чему равен квадратный корень из 0 чему равно что-то/квадратный корень из 0.

П.С. Предвидя ваш вопрос, ваша программа работала потому что вы не правильно в ней записали условие и x[0] = 2 там.
p51x вне форума Ответить с цитированием
Старый 24.11.2016, 16:16   #8
Vika2016
Пользователь
 
Регистрация: 24.02.2016
Сообщений: 69
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Так все правильно ж выводит. Подумайте, чему равен квадратный корень из 0 чему равно что-то/квадратный корень из 0.

П.С. Предвидя ваш вопрос, ваша программа работала потому что вы не правильно в ней записали условие и x[0] = 2 там.
точно. тогда выходит что задание как бы не очень правильное если так выходит
Vika2016 вне форума Ответить с цитированием
Старый 24.11.2016, 16:32   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Это уже к тому, кто задание давал. Бывают и в книге опечатки. и в заданиях, а так вполне себе условие - ну бесконечность получилась, может у вас как раз тема была на обработку таких вот крайних случаев в коде...
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ (рекурсия) severest Помощь студентам 11 01.07.2012 01:37
Рекурсия victor5133 Общие вопросы C/C++ 3 26.04.2012 13:22
Рекурсия в C++ 2008_student_2013 Помощь студентам 2 16.04.2012 21:07
рекурсия Lena neznayka Помощь студентам 2 16.06.2010 20:46
Рекурсия Solnze2 Паскаль, Turbo Pascal, PascalABC.NET 0 09.06.2010 09:28