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

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

Войти
Регистрация
Восстановить пароль
 
 
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 526
#1

Вычислить сумму ряда - C++

25.07.2013, 14:25. Просмотров 854. Ответов 17
Метки нет (Все метки)

По заданным числам n и a вычислить значение суммы: http://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{i=1}^{n}i*a^i


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cmath>
#define ll long long
 
inline ll binpow(ll x, ll n) {
    ll res = 1;
    while (n) {
        if (n & 1)res *= x;
        x *= x;
        n >>= 1;
    }
    return res;
}
 
int main() {
    ll n, a, s = 0;
    std::cin >> n >> a;
    for (ll i = 1; i <= n; i++) {
        s += i * binpow(a, i);
    }
    std::cout << abs(s) << std::endl;
    return 0;
}
вроде правильно, а проходит на 53%, где я туплю?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2013, 14:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить сумму ряда (C++):

Вычислить сумму ряда. Где-то напутал знаки или формула ряда не правильная. Посмотрите свежим взглядом. - C++
Привет! Пишу простую контрольную, не могу понять, то ли я где-то со знаками туплю, то ли формула не корректна. Задание: Мое...

Вычислить сумму четных и сумму нечетных чисел натурального ряда от 1 до n - C++
18 задача 1 лаба После удара о поверхность Земли мяч движется вертикально вверх со скорость 15 м\с. Найдите координату мяча над...

Вычислить сумму четных и сумму нечетных чисел натурального ряда от 1 до N - C++
Вычислить сумму четных и сумму нечетных чисел натурального ряда от 1 до N. Не могу найти где ошибка ? #include &lt;iostream&gt; #include...

Вычислить сумму ряда - C++
может кто подскажет как формулу записать? #include &lt;iostream&gt; using namespace std; int main() { double N, an=1,an0,x,sum; ...

Вычислить сумму ряда - C++
Можно как то с пояснениями как это вообще прописывается? И что это за последовательность такая?

Вычислить сумму ряда - C++
Дано натуральное число N. Вычислить S равное сумме i!/(N+i)! при i=1

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Fintt
10 / 10 / 0
Регистрация: 13.02.2012
Сообщений: 94
25.07.2013, 14:28 #2
Извиняюсь я написал не то, я не так понял.
0
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 526
25.07.2013, 14:37  [ТС] #3
Цитата Сообщение от Fintt Посмотреть сообщение
мб &&?


Добавлено через 8 минут

Не по теме:

где Thinker, когда он нужен

0
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
25.07.2013, 15:38 #4
Немного подковырял код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<cmath>
double binpow(double x, int n) {
    while (--n) 
        x *= x;
    return x;
}
int main() {
    double a, s = 0;
    int n;
    std::cin >> n >> a;
    for (int i = 1; i <= n; i++) 
        s += i * binpow(a, i);
    std::cout << abs(s) << std::endl;
    system("pause");
    return 0;
}
Хотя я бы рекомендовал информировать пользователя какие конкретно переменные необходимо ввести.
Надеюсь нигде не ошибся. Вопросы?

Добавлено через 10 минут
n >>= 1;
Это как я понимаю должен быть декремент?
Если я не ошибаюсь побитовый сдвиг вправо это деление на два. Вы уверены, что он здесь нужен или это просто я не понимаю ваш алгоритм?

Добавлено через 2 минуты
C++
1
(n & 1)
А если n = 3 (двоичный 011)?
0
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 526
25.07.2013, 16:30  [ТС] #5
Цитата Сообщение от Ilot Посмотреть сообщение
Хотя я бы рекомендовал информировать пользователя какие конкретно переменные необходимо ввести.
Цитата Сообщение от Belfegor Посмотреть сообщение
проходит на 53%

Не по теме:

это намекает о том, что это олимпиадная задача


Цитата Сообщение от Ilot Посмотреть сообщение
Вы уверены, что он здесь нужен
да
Цитата Сообщение от Ilot Посмотреть сообщение
я не понимаю ваш алгоритм
да

Ваше решение неверно.
0
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
25.07.2013, 16:36 #6
Эмм... ради интереса в чем ошибка?
0
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 526
25.07.2013, 16:44  [ТС] #7
Цитата Сообщение от Ilot Посмотреть сообщение
Эмм... ради интереса в чем ошибка?
http://ideone.com/Uda7EZ

Не по теме:

n--a----s
3--3----264(должно быть 102)
4--4----262948(должно быть 1252)

0
Valentina
68 / 68 / 3
Регистрация: 13.05.2012
Сообщений: 130
25.07.2013, 16:51 #8
здесь же правильные результаты выдает
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
#include <iostream>
#include <cmath>
#define ll long long
 
inline ll binpow(ll x, ll n) {
    ll res = 1;
    while (n) {
        if (n & 1)res *= x;
        x *= x;
        n >>= 1;
    }
    return res;
}
 
int main() {
    ll n, a, s = 0;
    std::cin >> n >> a;
    for (ll i = 1; i <= n; i++) {
        s += i * binpow(a, i);
    }
    long k=s;
    std::cout << abs(k) << std::endl;
    system("pause");
    return 0;
}
0
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
25.07.2013, 16:53 #9
А... ну делов-то:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include<cmath>
double binpow(double x, int n) {
    double res = x;
    while (--n) 
        res *= x;
    return res;
}
int main() {
    double a, s = 0;
    int n;
    std::cin >> n >> a;
    for (int i = 1; i <= n; i++) 
        s += i * binpow(a, i);
    std::cout << abs(s) << std::endl;
    system("pause");
    return 0;
}
0
ya_noob
_
201 / 145 / 9
Регистрация: 08.10.2011
Сообщений: 432
25.07.2013, 17:05 #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
 
int main()
{
    int a, n, sum = 0, x = 1;
 
    cin >> n >> a;
    for ( int i = 1; i <= n; ++i )
        sum += ( x *= a ) * i;
    cout << sum << endl;
 
    return 0;
}
0
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 526
25.07.2013, 17:19  [ТС] #11
Цитата Сообщение от Valentina Посмотреть сообщение
здесь же правильные результаты выдает
Цитата Сообщение от Belfegor Посмотреть сообщение
проходит на 53%
ya_noob, тоже самое...
0
ya_noob
_
201 / 145 / 9
Регистрация: 08.10.2011
Сообщений: 432
25.07.2013, 17:32 #12
Цитата Сообщение от Belfegor Посмотреть сообщение
По заданным числам n и a вычислить значение суммы
а какие диапазоны допустимых значений для n и a?
0
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
25.07.2013, 17:55 #13
А ряд таки легко суммируется: производная от геометрической прогрессии. выхожу с телефона формулу написать сложно, но думаю для вас это не составит труда. удачи
0
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 526
25.07.2013, 18:17  [ТС] #14
Цитата Сообщение от ya_noob Посмотреть сообщение
а какие диапазоны допустимых значений для n и a?
Два натуральных числа n и a.
сумма не превышает 10^18
0
ya_noob
_
201 / 145 / 9
Регистрация: 08.10.2011
Сообщений: 432
25.07.2013, 18:39 #15
Цитата Сообщение от Belfegor Посмотреть сообщение
Два натуральных числа n и a.
сумма не превышает 10^18
тут надо формулу для суммы ряда найти, а иначе вы по времени не влезете. попробуйте такой тест: 950000000 1
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2013, 18:39
Привет! Вот еще темы с ответами:

Вычислить сумму ряда - C++
Нужно сделать факториал. Я не знать как:resent: #include&lt;stdio.h&gt; #include&lt;math.h&gt; #include&lt;locale.h&gt; main() { setlocale(0,...

Вычислить сумму ряда - C++
вот такой вот красивый ряд помогите с решением вот мой вариант #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace...

Вычислить сумму ряда - C++
Задание: Нужно написать и отладить программу для вычисления суммы ряда, приняв х=3, с циклической (оператор for) и разветвляющейся...

Вычислить сумму ряда - C++
Помогите пожалуйста составить программу, которая будет вычислять сумму членов в заданном ряде \sum_{i=0}^{\infty}\frac{1}{i!} ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.07.2013, 18:39
Ответ Создать тему
Опции темы

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