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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.64
Dmitry_Web
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 6
#1

Рекурсия: вычисление sqrt(1 + sqrt(2 + ... + sqrt(n))) - C++

05.02.2012, 19:04. Просмотров 2660. Ответов 8
Метки нет (Все метки)

Не подскажите как расписать рекурсивно формулу?
Название: Снимок.JPG
Просмотров: 1226

Размер: 10.5 Кб
Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2012, 19:04     Рекурсия: вычисление sqrt(1 + sqrt(2 + ... + sqrt(n)))
Посмотрите здесь:
C++ Рекурсия: вычислить значение выражения sqrt(1+sqrt(2+...sqrt(n)))
C++ Вычислить значение выражения sqrt (2 + sqrt (2 + sqrt (2 ... sqrt2))), (n-слагаемых)
Дано натуральное число n. Вычислить sqrt(2+ sqrt(5 + sqrt(7...)) C++
Рекурсия S=sqrt(1+sqrt(2+sqrt(3+.+sqrt(n) C++
[C++ Error] Sqrt x.cpp(16): E2268 Call to undefined function 'sqrt'. Что это за ошибка??? C++
C++ Вычислить y=sqrt(1+sqrt(4+sqrt(9+.+sqrt(36+sqrt(49)
Вычислить: sqrt(3+sqrt(6+.+sqrt(3*(n-1)+sqrt(3*n).) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dani
1278 / 636 / 56
Регистрация: 11.08.2011
Сообщений: 2,277
Записей в блоге: 2
Завершенные тесты: 1
05.02.2012, 19:19     Рекурсия: вычисление sqrt(1 + sqrt(2 + ... + sqrt(n))) #2
Так вроде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <math.h>
 
double Force (int n, int m)
{
    if (n==m) return sqrt(n+.0);
    else return sqrt(m+Force (n, m+1));
}
 
 
int main()
{
    int n;
    std:: cin >> n;
    std:: cout << Force (n, 1) << "\n";
    system ("pause");
    return 0;
}
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
05.02.2012, 19:21     Рекурсия: вычисление sqrt(1 + sqrt(2 + ... + sqrt(n))) #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cmath>
 
double y(double);
 
int main()
{
        double n;
 
        std::cin >> n;
 
        std::cout << y(n) << std::endl;
 
        return 0;
}
 
double y(double n)
{
        if(n == 1)
                return n;
        else
                return std::sqrt(std::sqrt(n) + y(n-1));
}
Добавлено через 55 секунд
опоздал
Dmitry_Web
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 6
05.02.2012, 21:47  [ТС]     Рекурсия: вычисление sqrt(1 + sqrt(2 + ... + sqrt(n))) #4
хм...
получается у меня правильный код?
C++
1
2
3
4
5
double yr(int n)
{
    if(n==1) return 1;
    else return sqrt(yr(n-1)+sqrt(n));
}
При проверке калькулятором ответы не сходятся.
Вот вариант без рекурсии:
C++
1
2
3
4
5
6
7
8
9
10
double y(int n)
{
    double y=0, z=0;
    for(int i=n; i>0; i--)
    {
        y=sqrt(z+i);
        z=y;
    }
    return y;
}
А тут ответы сходятся.
Dmitry_Web
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 6
08.02.2012, 18:51  [ТС]     Рекурсия: вычисление sqrt(1 + sqrt(2 + ... + sqrt(n))) #5
С рекурсией падает точность по сравнение с циклами?
Ответы абсолютно одинаковые для 1 и 2.

Добавлено через 1 час 23 минуты
Разобрался, спасибо всем!
Только один вопрос
Цитата Сообщение от Dani Посмотреть сообщение
if (n==m) return sqrt(n+.0);
Зачем?
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
08.02.2012, 19:30     Рекурсия: вычисление sqrt(1 + sqrt(2 + ... + sqrt(n))) #6
Цитата Сообщение от Dmitry_Web Посмотреть сообщение
Зачем?
Для преобразования типов из int в double
Dmitry_Web
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 6
08.02.2012, 20:58  [ТС]     Рекурсия: вычисление sqrt(1 + sqrt(2 + ... + sqrt(n))) #7
Цитата Сообщение от I.M. Посмотреть сообщение
Для преобразования типов из int в double
Зачем? Мы же возвращаем тип double в ф-ии.
Цитата Сообщение от Dani Посмотреть сообщение
double Force (int n, int m)
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
08.02.2012, 21:07     Рекурсия: вычисление sqrt(1 + sqrt(2 + ... + sqrt(n))) #8
Цитата Сообщение от Dani Посмотреть сообщение
#include <math.h>
cmath!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2012, 08:59     Рекурсия: вычисление sqrt(1 + sqrt(2 + ... + sqrt(n)))
Еще ссылки по теме:
Вычислить: sqrt(k+sqrt(2k+...+sqrt(k(n-1)+sqrt(kn)))) C++
C++ Вычисление значения y=sqrt(x) через предел
C++ sqrt
sqrt в c++ C++
C++ sqrt

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
09.02.2012, 08:59     Рекурсия: вычисление sqrt(1 + sqrt(2 + ... + sqrt(n))) #9
Цитата Сообщение от Dmitry_Web Посмотреть сообщение
Зачем? Мы же возвращаем тип double в ф-ии.
Затем что корень из 1 будет 1, т.е integer, а не double
Yandex
Объявления
09.02.2012, 08:59     Рекурсия: вычисление sqrt(1 + sqrt(2 + ... + sqrt(n)))
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru