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

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

Войти
Регистрация
Восстановить пароль
 
SRF
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 13
#1

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

23.11.2013, 23:50. Просмотров 597. Ответов 8
Метки нет (Все метки)

Вычислить с помощью рекурсии и без нее - y(n) = sqrt(1+sqrt(2+...sqrt(n)..
Как выполнить задание с помощью рекурсии?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream.h>
#include <math.h>
    double sum(int);
    double sumr(int);
int main()
{
    int n;
    cout <<"Vvedite n - ";
        cin >> n;
    cout << "y(n) ne rekurs = " << sum(n) << endl;
    return 0;
}
    double sum(int n)
    {
        double y=0, z=0;
        for (int i=n;i>0;i--)
        {
            y=sqrt(z+i);
            z=y;
        }
        return y;
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2013, 23:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсия: вычислить значение выражения sqrt(1+sqrt(2+...sqrt(n))) (C++):

Цикл: Для числа N вычислить значение следующего выражения: sqrt((1) + sqrt((2) + ... + sqrt(2 * N))) - C++
Как это решить? sqrt((1)+sqrt((2)+..+sqrt(2n)))

Вычислить значение выражения sqrt (2 + sqrt (2 + sqrt (2 ... sqrt2))), (n-слагаемых) - C++
Вычислить значение выражения sqrt (2 + sqrt (2 + sqrt (2 ... sqrt2))), (n-слагаемых),с помощью iostream, stdio.С помощью цикла for або while

Дано натуральное число n. Вычислить sqrt(2+ sqrt(5 + sqrt(7...)) - C++
Дано натуральное число n.Вычислить sqrt(2+ sqrt(5 + sqrt(7...)). Под корнями располагается n первых простых чисел. Написал как находить...

Рекурсия: вычисление sqrt(1 + sqrt(2 + ... + sqrt(n))) - C++
Не подскажите как расписать рекурсивно формулу? Спасибо!

Рекурсия S=sqrt(1+sqrt(2+sqrt(3+.+sqrt(n) - C++
Задали написать программу на С++ которая высчитывает S=sqrt(1+sqrt(2+sqrt(3+...+sqrt(n)))) . Нашла похожу тему, но там программа на...

Вычислить y=sqrt(1+sqrt(4+sqrt(9+.+sqrt(36+sqrt(49) - C++
Помогите пожалуйста с решением данной задачи. \sqrt{1+\sqrt{4+\sqrt{9+...+\sqrt{36+\sqrt{49}}}}} Не совсем понимаю как решать... ...

8
RQdan
65 / 65 / 17
Регистрация: 26.10.2013
Сообщений: 198
24.11.2013, 00:41 #2
C++
1
2
3
4
5
double sumr(int n, int it)
{
if(n==it) return sqrt(it);
 else return sqrt(it+sumr(n,it+1))
}
1
SRF
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 13
24.11.2013, 01:09  [ТС] #3
Цитата Сообщение от RQdan Посмотреть сообщение
C++
1
2
3
4
5
double sumr(int n, int it)
{
if(n==it) return sqrt(it);
 else return sqrt(it+sumr(n,it+1))
}
LAB9.OBJ : error LNK2001: unresolved external symbol "double __cdecl sumr(int)" (?sumr@@YANH@Z)
Debug/LAB9.exe : fatal error LNK1120: 1 unresolved externals

такие вот дела, что делать?

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 <iostream.h>
#include <math.h>
    double sum(int);
    double sumr(int);
int main()
{
    int n;
    cout <<"Vvedite n - ";
        cin >> n;
    cout << "y(n) ne rekurs = " << sum(n) << endl;
    cout << "y(n) rekurs = " << sumr(n) << endl;
    return 0;
}
    double sum(int n)
    {
        double y=0, z=0;
        for (int i=n;i>0;i--)
        {
            y=sqrt(z+i);
            z=y;
        }
        return y;
    }
        double sumr(int n, int it)
{
    if(n==it) 
        return sqrt(it);
    else 
        return sqrt(it+sumr(n,it+1));
}
0
bars268
7 / 7 / 0
Регистрация: 26.01.2013
Сообщений: 58
24.11.2013, 01:12 #4
Цитата Сообщение от SRF Посмотреть сообщение
LAB9.OBJ : error LNK2001: unresolved external symbol "double __cdecl sumr(int)" (?sumr@@YANH@Z)
Debug/LAB9.exe : fatal error LNK1120: 1 unresolved externals

такие вот дела, что делать?
В коде присутствует ссылка на что-то (функцию, переменную, метку), что не может быть найдено компоновщиком в библиотеках или объектных файлах. (MSDN)
0
caiman
11 / 11 / 1
Регистрация: 17.11.2013
Сообщений: 39
24.11.2013, 02:46 #5
Не мучься и не придумывай велосипед. Старая добрая хвостовая рекурсия:
C++
1
2
3
4
5
6
double sumr(int n) {
    if ( n == 1 ) {
        return 1;
    }
    return sumr((n-1) + sqrt(n));
}
Добавлено через 20 минут
Сорри, ребят, не проснулся еще - фигню написал.
0
HidForce
56 / 56 / 13
Регистрация: 17.11.2012
Сообщений: 1,602
24.11.2013, 02:47 #6
caiman, функция sqrt() не может принимать переменные целочисленного типа!
1
caiman
11 / 11 / 1
Регистрация: 17.11.2013
Сообщений: 39
24.11.2013, 03:13 #7
Цитата Сообщение от HidForce Посмотреть сообщение
caiman, функция sqrt() не может принимать переменные целочисленного типа!
Я извинился уже! Не подумавши написал. В любом случае, спасибо за ремарку.
P.S.: То, что я интовую переменную передал, то пол беды - там у меня сама функция нерабочая. Еще раз приношу извинения за необдуманный пост.
0
RQdan
65 / 65 / 17
Регистрация: 26.10.2013
Сообщений: 198
24.11.2013, 12:17 #8
SRF,
Цитата Сообщение от SRF Посмотреть сообщение
такие вот дела, что делать?
в коде у тебя не переписано объявление функции sumr и ее вызов в main - там так и остался один параметр, а надо уже два.
4 double sumr(int, int);
и
11 cout << "y(n) rekurs = " << sumr(n,1) << endl;

Добавлено через 10 минут
P.S. если все же программа будет ругаться на то, что it не число с плавающей точкой, то надо внести небольшое изменение в рекурсию: привести it к типу double
C++
1
2
3
4
5
double sumr(int n, int it)
{
if(n==it) return sqrt(double(it));
 else return sqrt(it+sumr(n,it+1))
}
1
SRF
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 13
24.11.2013, 16:25  [ТС] #9
RQdan, вопросов нет, спасибо
0
24.11.2013, 16:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2013, 16:25
Привет! Вот еще темы с ответами:

Вычислить: sqrt(k+sqrt(2k+...+sqrt(k(n-1)+sqrt(kn)))) - C++
Люди добрые! Помогите пожалуйста. Даны натуральные числа n и k. Вычислить: sqrt(k+sqrt(2k+...+sqrt(k(n-1)+sqrt(kn))))

Вычислить: sqrt(3+sqrt(6+.+sqrt(3*(n-1)+sqrt(3*n).) - C++
Здравствуйте! Вычислить: sqrt(3+sqrt(6+...+sqrt(3*(n-1)+sqrt(3*n)...))) Правильно ли делаю вычисления на NetBeans IDE 8.02?...

[C++ Error] Sqrt x.cpp(16): E2268 Call to undefined function 'sqrt'. Что это за ошибка??? - C++
Когда я испльзую функцию sqrt() компилятор выводит: Sqrt x.cpp(16): E2268 Call to undefined function 'sqrt' Что это значит???

Вычислить значение x:=sqrt(a), используя рекуррентную формулу / C++ - C++
Доброго времени суток вам уважаемые форумчане... Мне нужна ваша скорая помощь в решении данной задачки...у меня вся проблема в том что я...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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