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

Параллельное вычисление факториала - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ размер матрицы http://www.cyberforum.ru/cpp-beginners/thread517572.html
#include <iostream> #include <vector> #include <stack> using namespace std; typedef vector<int > T_vec; typedef vector<T_vec> T_mtr; enum {EMPTY, POINT, NOTBOARD};
C++ Математические выражения на языке С++ Всем привет! Не дает мне покоя одна задачка. Вот как выглядит в оригинале. И вот как я пытался первести в С++. В итоге имею 8 ошибок, кривые руки и больную голову. Вобщем ХЕЛП! ... http://www.cyberforum.ru/cpp-beginners/thread517568.html
C++ Нужно, чтобы показало все трехзначные числа, а то показывает 10
#include <iostream> #include <ctime> #include <cstdlib> #include <cstdio> #include <cmath> using namespace std; int main() {
C++ отображение кода на форуме
когда пишу у себя (notepad++), то код выглядит довольно неплохо (вроде с отступами не переборщил и т.д) но когда постю код выглядит он по другому:...
C++ Информационные ресурсы по формулам. http://www.cyberforum.ru/cpp-beginners/thread517536.html
Доброго времени суток! Поделитесь пожалуйста ссылками на ресурсы которые содержат информацию по формулам. Вся математика,химия,физика,электротехника.Можно даже с детальными объяснениями этих самых...
C++ Как при помощи ф-ий read/write записать в файл, а потом считать с него Такой вопрос! Как при помощи ф-ий read/write записать в файл, а потом считать с него различные типы данных, как int,double, char, char. Заранее благодарен. подробнее

Показать сообщение отдельно
Molo4ko
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 6

Параллельное вычисление факториала - C++

13.03.2012, 00:36. Просмотров 907. Ответов 0
Метки (Все метки)

Необходимо реализовать последовательный и параллельный алгоритм вычисления факториала N!. Есть только последовательный расчёт. Если кто может распараллелить помогите пожалуйста.
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
#include <stdio.h>
#include <iostream>
#include <sstream>
#include <vector>
#define base 1000000000
void writelong(std::vector<int> vec){
    printf ("%d", vec.empty() ? 0 : vec.back());
    for (int i=(int)vec.size()-2; i>=0; --i)
        printf ("%09d", vec[i]);
}
std::vector<int> smult(std::vector<int> a, int b){
    int carry = 0;
    for (size_t i=0; i<a.size() || carry; ++i) {
        if (i == a.size())
            a.push_back (0);
        long long cur = carry + a[i] * 1ll * b;
        a[i] = int (cur % base);
        carry = int (cur / base);
    }
    while (a.size() > 1 && a.back() == 0)
        a.pop_back();
    return a;
}
int main(){
    int b;
    std::cin >> b;
    std::vector<int> a(1,1);
    for (int i = 1; i <= b; i++)
        a=smult(a,i);
    writelong(a);
        std::cout << std::endl;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru