Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Infinity20_5
Заблокирован
1

Вычислить: sqrt(3+sqrt(6+.+sqrt(3*(n-1)+sqrt(3*n).)

20.05.2016, 23:45. Просмотров 808. Ответов 18
Метки нет (Все метки)

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

Код:
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(100);
    int i=4-1;
    while(i>0){
        sum=sqrt(i+sum);
        i--;
        cout<<i<<"\n";
    }
    cout<<sum;
     
 
}
Результат:
C++
1
2
3
4
5
6
7
2
1
0
1.8351read from master failed
                             : Input/output error
 
ВЫПОЛНЕНИЕ FAILED (значение выхода 1,, общее время: 4s)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2016, 23:45
Ответы с готовыми решениями:

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

Вычислить значение выражения sqrt (2 + sqrt (2 + sqrt (2 ... sqrt2))), (n-слагаемых)
Вычислить значение выражения sqrt (2 + sqrt (2 + sqrt (2 ... sqrt2))),...

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

Рекурсия: вычислить значение выражения sqrt(1+sqrt(2+...sqrt(n)))
Вычислить с помощью рекурсии и без нее - y(n) = sqrt(1+sqrt(2+...sqrt(n).. Как...

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

18
nmcf
6277 / 5578 / 2539
Регистрация: 14.04.2014
Сообщений: 23,471
21.05.2016, 09:38 2
Неправильно.
Какие начальные данные?
1
Infinity20_5
Заблокирован
21.05.2016, 10:00  [ТС] 3
Цитата Сообщение от nmcf Посмотреть сообщение
Какие начальные данные?
nmcf!
Спасибо, что откликнулись. Сам диву даюсь. Вроде как заурядная учебная задача, известна со времён царя Гороха, а толком решить никто не может.

Условия в общем виде. Вычислить: sqrt(3+sqrt(6+...+sqrt(3*(n-1)+sqrt(3*n)...))).
Мне надо вычислить конкретно: sqrt(3 + sqrt(6 + sqrt(9 + sqrt(12 + … + sqrt[297 + sqrt(300)]))…)) = ?

Вручную долго считать. Пытался:
(n=1) —> [3*(1– 1) + (3*1)^0.5]^0.5 = 1.316…
(n=2) —> (3*1 + [3*(2– 1) + (3*2)^0.5]^0.5)^0.5 = 2.3096…
(n=3) —> (3*1 + (3*2 + [3*(3– 1) + (3*3)^0.5]^0.5)^0.5)^0.5 = 2.449…
(n=4) —> (3*1 + (3*2 + (3*3 + [3*(4– 1) + (3*4)^0.5]^0.5)^0.5)^0.5)^0.5 = 2.467…

Как правильно задать цикл на языке С++?
Хочется, чтобы программа распечатала результаты для первых 100 членов ряда (n=100).
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26149 / 17526 / 6950
Регистрация: 22.10.2011
Сообщений: 30,864
Записей в блоге: 6
21.05.2016, 10:13 4
Лучший ответ Сообщение было отмечено Infinity20_5 как решение

Решение

Infinity20_5,
C++
1
2
3
4
    double sum = 0;
    int n = 100;
    while(n > 0) sum = sqrt(3*n-- + sum);
    cout<<sum;
0
Alamant
13 / 13 / 9
Регистрация: 16.05.2016
Сообщений: 49
21.05.2016, 10:14 5
Через рекурсию как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
double f(int i, int n) {
    if (i == n)
        return sqrt(3 * n);
    else
        return sqrt(3 * i + f(i + 1, n));
}
 
double g(int n) {
    return f(1, n);
}
 
int main()
{
    cout << g(100) << endl;
 
    system("pause");
}
0
Infinity20_5
Заблокирован
21.05.2016, 10:42  [ТС] 6
Цитата Сообщение от Alamant Посмотреть сообщение
Через рекурсию как-то так
А почему Вы сами "не проверяете себя на практике"? Ошибки в программе, картинка ниже
0
Миниатюры
Вычислить: sqrt(3+sqrt(6+.+sqrt(3*(n-1)+sqrt(3*n).)  
Infinity20_5
Заблокирован
21.05.2016, 11:00  [ТС] 7
Цитата Сообщение от volvo Посмотреть сообщение
Infinity20_5,
C++
Выделить код
double sum = 0;
int n = 100;
while(n > 0) sum = sqrt(3*n-- + sum);
cout<<sum;
volvo!
Вроде программа проходит, а на сердце тревожно. Интуиция кричит: что-то не так. Может какой-нибудь скобки не хватает?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <math.h>
using namespace std;
 
int main(void)
{
    
    double sum = 0;
    int n = 100;
    while(n > 0) sum = sqrt(3*n-- + sum);
    cout<<sum;
     
 
}
Просил распечатку для первых 100 членов, выше. А в программе:чёта сафсем адин?! Где остальные?

Цитата Сообщение от Infinity20_5 Посмотреть сообщение
Хочется, чтобы программа распечатала результаты для первых 100 членов ряда (n=100).
C++
1
2
3
4
2.46993read from master failed
                              : Input/output error
 
ВЫПОЛНЕНИЕ FAILED (значение выхода 1,, общее время: 5s)
Не знаю, что и думать?
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26149 / 17526 / 6950
Регистрация: 22.10.2011
Сообщений: 30,864
Записей в блоге: 6
21.05.2016, 11:02 8
Цитата Сообщение от Infinity20_5 Посмотреть сообщение
Интуиция кричит: что-то не так
Плохая у тебя интаиция. Проверь вручную для N=3, например:
sqrt(3+sqrt(6+sqrt(9))) = 2.44949

Что выдает программа?

Цитата Сообщение от Infinity20_5 Посмотреть сообщение
Просил распечатку для первых 100 членов, выше
Тебе надо найти результат вычисления выражения для n = 100, а не выводить сотню каких-то непонятных значений. Результат - одно значение. Программа его выводит. Что не так опять?
1
nmcf
6277 / 5578 / 2539
Регистрация: 14.04.2014
Сообщений: 23,471
21.05.2016, 11:03 9
<cmath> добавь.
0
retmas
Жарю без масла
865 / 747 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
21.05.2016, 11:09 10
Цитата Сообщение от Infinity20_5 Посмотреть сообщение
read from master failed : Input/output error
обновите NetBeans

Добавлено через 27 секунд
https://netbeans.org/bugzilla/show_bug.cgi?id=252202
0
Infinity20_5
Заблокирован
21.05.2016, 11:32  [ТС] 11
Цитата Сообщение от nmcf Посмотреть сообщение
<cmath> добавь.
Первый раз в жизни вижу это слово, чего мне стесняться. Вокруг все свои. Если бы знал про него, куда его надо добавить, то вряд ли обращался за помощью по пустякам.

Добавлено через 15 минут
Цитата Сообщение от volvo Посмотреть сообщение
Плохая у тебя интаиция. Проверь вручную для N=3, например:
sqrt(3+sqrt(6+sqrt(9))) = 2.4494
Сравните, пожалуйста, у Вас описка (!) в записи, пропуск ещё одного члена:
Цитата Сообщение от Infinity20_5 Посмотреть сообщение
(n=3) —> (3*1 + (3*2 + [3*(3– 1) + (3*3)^0.5]^0.5)^0.5)^0.5 = 2.449…
(n=4) —> (3*1 + (3*2 + (3*3 + [3*(4– 1) + (3*4)^0.5]^0.5)^0.5)^0.5)^0.5 = 2.467…
Проверяю для n=4. Не нашим, не вашим. Да, Вы правы!!
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <math.h>
using namespace std;
 
int main(void)
{
    
    double sum = 0;
    int n = 4;
    while(n > 0) sum = sqrt(3*n-- + sum);
    cout<<sum;
     
 
}
Результат для n = 4 полностью идентичен. Всё верно! Спасибо огромное! Камень с души сняли.
C++
1
2
3
4
2.46721read from master failed
                              : Input/output error
 
ВЫПОЛНЕНИЕ FAILED (значение выхода 1,, общее время: 3s)
Добавлено через 2 минуты
Цитата Сообщение от retmas Посмотреть сообщение
обновите NetBeans
Спасибо, попробую.
0
Alamant
13 / 13 / 9
Регистрация: 16.05.2016
Сообщений: 49
21.05.2016, 12:39 12
Infinity20_5,
Цитата Сообщение от Infinity20_5 Посмотреть сообщение
А почему Вы сами "не проверяете себя на практике"? Ошибки в программе, картинка ниже
Потому что у меня код работает. Возможно, дело в подключении <cmath>, как Вам указали выше.
1
Infinity20_5
Заблокирован
21.05.2016, 12:49  [ТС] 13
Цитата Сообщение от Alamant Посмотреть сообщение
дело в подключении <cmath>
Я профан в программировании, открыто пишу.

Выше уже сказал мне незнакомо это слово "<cmath>". Могу догадываться, какая-то функция.
Что с ней делать? куда вставить? просто не знаю. Рад бы что-то сделать, а как?

Пожалуйста, вставьте её в программный код, всем и мне будет очень интересно! Где она должна находиться?
0
Alamant
13 / 13 / 9
Регистрация: 16.05.2016
Сообщений: 49
21.05.2016, 13:37 14
Infinity20_5, я тут покопался у себя, и, похоже, что моя VS2015 по умолчанию подключает вообще всю стандартную библиотеку. Для того, чтобы подключить заголовочный файл, нужно в начале файла с исходным кодом программы использовать директиву #include. Попробуйте в начале файла вставить строки
C++
1
2
3
#include <iostream>
#include <cmath>
#include <cstdlib>
Хотя решение volvo, безусловно, изящнее)
1
Infinity20_5
Заблокирован
21.05.2016, 15:43  [ТС] 15
Цитата Сообщение от Alamant Посмотреть сообщение
нужно в начале файла с исходным кодом программы использовать директиву #includ
Alamant, спасибо! С Вашей поправкой всё заработало, смотрите картинку (она вторая сверху)?

В чём причина "read from master failed : Input/output error"? Кто сможет объяснить популярно (тыкая пальцем на алгоритм действий)?

1) Bug 252202 - "read from master failed : Input/output error" https://netbeans.org/bugzilla/show_bug.cgi?id=252202
Вверху правильно или внизу (1 или 2)?
2) I do not understand all the surrounding details of this problem as I am new to C/C++; however, if you open up NetBeans and right click on your C++ project file and select "Properties" there should be a category called "Run". Under this category, find the option called "Console Type" and make sure that "Standard Output" is selected. I was having the same problems when the console type was selected as "Internal Terminal". For my setup, changing this option to Standard Output got rid of this error; however, I do not fully understand how this change affects the overall properties of my project. Wish you luck. http://stackoverflow.com/questions/2...t-output-error
0
Миниатюры
Вычислить: sqrt(3+sqrt(6+.+sqrt(3*(n-1)+sqrt(3*n).)  
retmas
Жарю без масла
865 / 747 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
21.05.2016, 16:24 16
обнови до 8.1 Netbeans. в ссылке же есть описание бага и статуса
0
Infinity20_5
Заблокирован
21.05.2016, 21:41  [ТС] 17
Цитата Сообщение от retmas Посмотреть сообщение
обнови до 8.1 Netbeans
retmas!
Cкачал одним файлом "все предлагаемые платформы": netbeans-8.1-windows.exe (219 152 Kb). Сразу, при этом, подключается установщик NetBeans, ушло чуть больше часа. Далее он сам предложил импортировать мои модули (11 штук)по Python. А уже С/С++ по моей просьбе.
Какой умница NetBeans!
Создал изначально новую папку, не хотелось путаницы в папке NetBeans 8.02. Потом её удалю.
Предупреждение: "read from master failed : Input/output error" — исчезло! Спасибо.

Alamant!
Опять проблемы. NetBeans возможно "стахановец" — поэтому никаких "пауз" (или перекуров) не признаёт. Как быть?
C++
1
2
3
4
2.46993
sh: pause: command not found
 
ВЫПОЛНЕНИЕ SUCCESSFUL (общее время: 7s)
0
Миниатюры
Вычислить: sqrt(3+sqrt(6+.+sqrt(3*(n-1)+sqrt(3*n).)  
retmas
Жарю без масла
865 / 747 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
21.05.2016, 21:48 18
NetBeans тут не причем. уберите бесполезный
C
1
system("pause");
команда pause есть в windows консоли cmd.exe, у вас же cygwin, а значит терминал - bash.
0
Alamant
13 / 13 / 9
Регистрация: 16.05.2016
Сообщений: 49
21.05.2016, 23:48 19
Infinity20_5, вместо system("pause"); можно попробовать использовать cin.get();
0
21.05.2016, 23:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2016, 23:48

Вычислить y=sqrt(1+sqrt(4+sqrt(9+.+sqrt(36+sqrt(49)
Помогите пожалуйста с решением данной задачи. ...

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

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


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

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

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