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

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

Войти
Регистрация
Восстановить пароль
 
AndreyD93
17 / 17 / 1
Регистрация: 13.11.2012
Сообщений: 154
#1

Посчитать сумму Лейбница - C++

18.02.2013, 03:44. Просмотров 420. Ответов 7
Метки нет (Все метки)

Помогите, пожалуйста
Посчитать сумму Лейбница Название: Снимок.JPG
Просмотров: 71

Размер: 11.6 Кб
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
18.02.2013, 06:30     Посчитать сумму Лейбница #2
Решение "в лоб": задача на два действия. Определите, до какого максимального N вы сможете суммировать (исходя из выбранной разрядности вещественного числа, если иное не задано) и тогда (пренебрегая погрешностью округления) суммируете в цикле до N почленно. Знак зависит от четности.
dimon_91
10 / 10 / 1
Регистрация: 06.05.2009
Сообщений: 34
18.02.2013, 09:29     Посчитать сумму Лейбница #3
Примерно такая функция. Писал в блокноте, не проверял, возможно понадобится явное приведение типов int <->double
C++
1
2
3
4
5
6
7
8
9
#include <math.h>
 
double leibniz(int n)
{
    double res=0;
    for(int i=1;i<=n;++i)
        res+=pow(-1,i+1)/(2*i-1);
    return res;
}
AndreyD93
17 / 17 / 1
Регистрация: 13.11.2012
Сообщений: 154
18.02.2013, 14:48  [ТС]     Посчитать сумму Лейбница #4
dimon_91, спасибо, так я и писал, но преподаватель сказал, что-бы я не использовал pow, а посчитал (-1)^(k+1) в отдельном цикле...
gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
18.02.2013, 15:09     Посчитать сумму Лейбница #5
посчитал (-1)^(k+1) в отдельном цикле
А зачем там цикл? Используйте проверку на четность:

C++
1
int    iFactor = ((k + 1) % 2)  ?  -1  :  1;
AndreyD93
17 / 17 / 1
Регистрация: 13.11.2012
Сообщений: 154
18.02.2013, 15:15  [ТС]     Посчитать сумму Лейбница #6
Спасибо всем кто откликнулся)
dimon_91
10 / 10 / 1
Регистрация: 06.05.2009
Сообщений: 34
18.02.2013, 15:30     Посчитать сумму Лейбница #7
С циклом будет так:
C++
1
2
3
4
5
6
7
8
9
10
11
double leibniz(int n)
{
    double res=0,c=-1;
    for(int i=1;i<=n;++i)
    {
        for(int j=2;j<=i+1;++j)
            c*=-1;  
        res+=c/(2*i-1);
    }
    return res;
}
Но можно вообще обойтись без дополнительного цикла:
C++
1
2
3
4
5
6
7
8
9
10
11
12
double leibniz(int n)
{
    double res=0;
    for(int i=1;i<=n;++i)
    {
        if((i+1)%2==0)
            res+=1/(2*i-1);
        else
            res-=1/(2*i-1);
    }
    return res;
}
gazlan меня опередил
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2013, 15:53     Посчитать сумму Лейбница
Еще ссылки по теме:

Посчитать сумму C++
C++ Посчитать число Pi с точностью Эпсилон(Используя ряд Лейбница.)
Посчитать сумму цифр и сумму делителей данного целого числа C++
Посчитать сумму ряда C++

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

Или воспользуйтесь поиском по форуму:
AndreyD93
17 / 17 / 1
Регистрация: 13.11.2012
Сообщений: 154
18.02.2013, 15:53  [ТС]     Посчитать сумму Лейбница #8
dimon_91, огромное спасибо))
Yandex
Объявления
18.02.2013, 15:53     Посчитать сумму Лейбница
Ответ Создать тему
Опции темы

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