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

Найти сумму ряда при введении с клавиатуры числа n - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Алгоритм Хаффмана, реализация через структуры http://www.cyberforum.ru/cpp-beginners/thread733894.html
Добрый день, помогите пожалуйста найти ошибку в построении кодов Хаффмана. использую следующие структуры: struct haffman { char Sim; int Freq; char Code; };
C++ Стандартные потоки 1. Определить класс с именем TRAIN, содержащую следующие поля:  название пункта назначения;  номер поезда  время отправления  определить методы доступа к этим полям и перегруженные операции извлечения и вставки для объектов типа TRAIN. 2. Написать программу, которая выполняет следующие действия:  ввод с клавиатуры данных в массив, состоящий из восьми объектов типа TRAIN; записи должны... http://www.cyberforum.ru/cpp-beginners/thread733889.html
C++ Определите количество гласных букв в слове
Помогите создать программу: Задание: 1.Определите количество гласных букв в слове. 2.Между двумя одинаковыми буквами в слове вставьте " - ". 3.Вычеркните из слова сочетание " при ".
ошибка в синтаксисе? C++
Скомпелировано в сlr:oldSyntax на VS2010. Жалуется на синтаксис: Предупреждение 1 warning D9035: использование параметра "clr:oldsyntax" нежелательно, он будет удален в следующих выпусках C:\Users\pan\documents\visual studio 2010\Projects\image_embedding\image_embedding\cl Ошибка 3 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по...
C++ Создать класс «Сотрудники предприятия» http://www.cyberforum.ru/cpp-beginners/thread733852.html
Создать класс «Сотрудники предприятия», включающий следующие поля: наименование предприятия и обобщенную коллекцию экземпляров класса «Сотрудник», методы ввода и вывода данных , а также методы работы с коллекцией (добавление, удаление элементов коллекции). Класс «Сотрудник» должен иметь информацию о табельном номере, ФИО, должности, времени приема и увольнения/перевода. Классы должны обеспечивать...
C++ Игра в НИМ (доработать код) Игра в НИМ. Правила игры: 1. В начале игры в каждой из n кучек находится отличное от 0 количество каких – то предметов (например, спички); 2. два игрока ходят по очереди. За один ход разрешается взять любое, отличное от 0 количество предметов из любой кучки; ... подробнее

Показать сообщение отдельно
irina3456
1 / 1 / 0
Регистрация: 23.05.2011
Сообщений: 91
17.12.2012, 18:12  [ТС]     Найти сумму ряда при введении с клавиатуры числа n
Оказалось все так просто(, но хотелось бы через условие while

Добавлено через 17 минут
Цитата Сообщение от vizapromo Посмотреть сообщение
вот моя версия:

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <math.h>
using namespace std;
 
int main () {
    double n, s = 0, i;
    cin >> n;
    for(i = 0; i <= n; i++)
        s += (pow(-1, i)) / ((2 * i + 1) * (pow(2, 2 * i + 1)));
    cout << s << endl;
return 0;
}
спасибо большое, через цикл while все прекрасно работает.
Теперь займемся рекурсией.

Добавлено через 3 часа 34 минуты
А как теперь из этого сделать рекурсию?
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
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <conio.h>
#include <math.h>
#include <windows.h>
using namespace std;
 
double series (int n);
 
// функция интерфейса
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int number_n;
    cout << "Введите положительное число n : ";
    cin >> number_n;
        if ( number_n < 0)
        {
            cout << "\nВведенно отрицательное число.\n";
            _getch();
            exit(1);
        }
        else 
        cout << "\nСумма ряда равна : " << series (number_n);
    _getch();
    return 0;
}
 
// функция вычисления суммы ряда
 
double series (int n)
{
    double  res, i;
    res = i = 0;
    while ( i <= n)
    {
        res += (pow(-1, i)) / ((2 * i + 1) * (pow(2, 2 * i + 1)));
        i++;
    }
    return res;
}
Добавлено через 11 часов 42 минуты
по поводу рекурсии, есть такие соображения:
при n=0, слагаемое равно 0,5, значит можно записать
C++
1
2
if (f == 0) 
             return 0.5;
а дальше.....
если подставлять n, то получим ряд следующего вида:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{1*{2}^{1}}-\frac{1}{3*{2}^{3}}+\frac{1}{5*{2}^{5}}-\frac{1}{7*{2}^{7}}+\frac{1}{9*{2}^{9}}-...
Видно, что i+=2. Тогда ряд можно представить следующим образом:
http://www.cyberforum.ru/cgi-bin/latex.cgi?(\frac{1}{5*{2}^{5}}-\frac{1}{3*{2}_{3}})+(\frac{1}{9*{2}^{9}}-\frac{1}{7*{2}^{7}})+...
Видно, что можно использовать рекурсивную функцию, но как???

Добавлено через 2 часа 51 минуту
как же сделать рекурсию??????

Добавлено через 2 часа 27 минут
Может отдельную функцию для разности???

Добавлено через 2 часа 53 минуты
Люди добрые, отзовитесь!!!!!
 
Текущее время: 09:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru