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

Рекурсия S=sqrt(1+sqrt(2+sqrt(3+.+sqrt(n) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Mirazhana
1 / 1 / 0
Регистрация: 04.09.2012
Сообщений: 94
18.12.2012, 16:59     Рекурсия S=sqrt(1+sqrt(2+sqrt(3+.+sqrt(n) #1
Задали написать программу на С++ которая высчитывает S=sqrt(1+sqrt(2+sqrt(3+...+sqrt(n)))) .
Нашла похожу тему, но там программа на Паскале. Сама перевести с Паскаля на С++ не смогла, помогите кто может пожалуйста.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var
n:integer;
s:real;
function r_sqrt(a,n:integer):real;
begin
     if a=0 then r_sqrt:=sqrt(n) else r_sqrt:=sqrt((n-a)+r_sqrt(a-1,n));
end;
 
begin
readln(n);
writeln(r_sqrt(n-1,n):3:4);
readln;
end.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2012, 16:59     Рекурсия S=sqrt(1+sqrt(2+sqrt(3+.+sqrt(n)
Посмотрите здесь:

[C++ Error] Sqrt x.cpp(16): E2268 Call to undefined function 'sqrt'. Что это за ошибка??? C++
Вычислить: sqrt(k+sqrt(2k+...+sqrt(k(n-1)+sqrt(kn)))) C++
C++ sqrt
C++ Вычислить значение выражения sqrt (2 + sqrt (2 + sqrt (2 ... sqrt2))), (n-слагаемых)
C++ sqrt c++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
18.12.2012, 17:13     Рекурсия S=sqrt(1+sqrt(2+sqrt(3+.+sqrt(n) #2
C++
1
2
3
4
double sum=n;
for(int i=n-1;i<=0;i--){
sum = sqrt(i+sum);
}
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
18.12.2012, 17:26     Рекурсия S=sqrt(1+sqrt(2+sqrt(3+.+sqrt(n) #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <cstdio>
#include <cmath>
 
float r_sqrt(int a, int n)
{            
    if (a==0)  return sqrt(n);
    else return sqrt((n-a)+r_sqrt(a-1, n)); //3 4, 2 3. 1 2, 0 1
    
};
int main()
{
    int n;
    printf("Vvedite chislo: ");
    scanf("%d", &n);
    printf("Sqrt(%d)= %f",n, r_sqrt(n-1, n));
    return 0;
}
Dean/W
1 / 1 / 0
Регистрация: 16.05.2010
Сообщений: 64
18.12.2012, 17:35     Рекурсия S=sqrt(1+sqrt(2+sqrt(3+.+sqrt(n) #4
Можно было бы добавить setlocale(0, " ") или SetConsoleOutputCP1251 что бы на рус.
C++
1
float r_sqrt(int a, int n)
Компилятор говорит что ему надо long double для переменной "n"
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
18.12.2012, 17:45     Рекурсия S=sqrt(1+sqrt(2+sqrt(3+.+sqrt(n) #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <math.h>
using namespace std;
 
int main(void)
{
    
    double sum=sqrt(4);
    int i=4-1;
    while(i>0){
        sum=sqrt(i+sum);
        i--;
        cout<<i<<"\n";
    }
    cout<<sum;
     
 
}
вместо 4 подставить n
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
18.12.2012, 18:40     Рекурсия S=sqrt(1+sqrt(2+sqrt(3+.+sqrt(n) #6
Цитата Сообщение от Dean/W Посмотреть сообщение
Можно было бы добавить setlocale(0, " ") или SetConsoleOutputCP1251 что бы на рус.
C++
1
float r_sqrt(int a, int n)
Компилятор говорит что ему надо long double для переменной "n"
Компиляторы разные бывают, тут же не экстрасенсы.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
float r_sqrt(int a, int n)
{            
    if (a==0)  return sqrt(1.0L*n);
    else return sqrt((n-a)+r_sqrt(a-1, n)); //3 4, 2 3. 1 2, 0 1
    
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n;
    printf("Vvedite chislo: ");
    scanf("%d", &n);
    printf("Sqrt(%d)= %f",n, r_sqrt(n-1, n));
    return 0;
}
Yandex
Объявления
18.12.2012, 18:40     Рекурсия S=sqrt(1+sqrt(2+sqrt(3+.+sqrt(n)
Ответ Создать тему
Опции темы

Текущее время: 07:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru