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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Возведение в степень, отрицательные числа http://www.cyberforum.ru/cpp-beginners/thread928607.html
В библиотеке <cmath> есть такая функция pow(A,B) - получаешь результат возведения A в степень B Решил написать свой pow с положительными числами работает, а вот с отрицательными я не могу понять как правильно, 1. -2 в 2 степени, на яндексе показывает что должно быть -4, обычный калькулятор показывает -4, pow(A,B) из <cmath> показывает 4, мой pow тоже показывает 4 2. -2 в 3 степени, везде...
C++ вывод генерированных чисел помогите с программой. Суть в том что нужно посчитать числа по формулам и получить примерно такой результат.. http://www.cyberforum.ru/cpp-beginners/thread928606.html
Задачка про стол. Размещение гостей без повторений C++
Представьте, что вы собираетесь пригласить к себе шестерых гостей, но за вашим столом могут разместиться всего лишь 4 человека Сколькими способами можно разместить четырех из шести гостей за обеденным сто- лом'<> Каждый из шести гостей может разместиться на первом стуле. Каж- дый из оставшихся пяти гостей может занять второй стул. На третьем стуле может разместиться один их четырех...
C++ Не создаётся .exe в связи с содержимым в строке
Не понимаю в чём может заключаться проблема если в объявляем строку сугубо двумя действительными числами не создаётся .exe файлchar s = "365.24 29.53";, а так создаётся char s = "365.24 a 29.53"; просто добавил между числами символ.
C++ Приоритеты выполнения перегрузок операций http://www.cyberforum.ru/cpp-beginners/thread928525.html
Всем привет. Скажите как себя будет вести программа в следующей ситуации и чем это обусловлено(компилятором или стандартом языка); #include <iostream> #include <fstream> /** перегрузка для записи в файл (не указателей)*/ template <class outdata> std::ofstream& operator << (std::ofstream& ofile, outdata& val) { if (!ofile)
C++ Поиск точки на координатной плоскости Помогите пожалуйста!! Нужно написать программу которая будет искать рандомную точку на координатной плоскости, относительно движущейся прямолинейной точки в доль оси Х. подробнее

Показать сообщение отдельно
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
25.07.2013, 19:26     Вычислить сумму ряда
Belfegor, чтобы найти степень a^i, где нужны все степени от a^1 до a^i, можно провернуть за O(i), а ты вкрутил никому не нужный бинпоиск, теперь сложность накручивается на логарифм за каждую итерацию. К примеру такой код свалился лишь на 1 тесте по времени:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    #include <iostream>
 
    int main()
    {
        unsigned __int64 result = 0, power;
        int n, a;
        std::cin >> n >> a;
        power = 1;
        for (int i = 1; i<=n; ++i)
        {
            power *= a;
            result += i * power;
        }
        std::cout << result << std::endl;
    }
Добавлено через 19 минут
И вообще, долго работать программа может только если a = 1, поэтому нужно просто заифить этот случай и найти ответ при помощи формулы суммы арифметической прогрессии. Этот код берет 100%:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main()
 {
    unsigned __int64 result = 0, power;
    unsigned __int64 n, a;
    std::cin >> n >> a;
    power = 1;
    if (a == 1)
    {
        std::cout << unsigned __int64(((n/2.0 + 0.5)*n)) << std::endl;
        return 0;
    }
    for (unsigned __int64 i = 1; i<=n; ++i)
    {
        power *= a;
        result += i * power;
    }
    std::cout << result << std::endl;
 }
 
Текущее время: 09:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru