Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2016, 20:39   #1
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию Разбить рекурсивную функцию на две рекурсивные функции

Добрый вечер. Нужно распаралелить програму,которая ищет разложение числа n на m слагаемых. По идеи нужно разбить рекурсивную функцию на две рекурсивные и сделать из них два отдельных процесса. Но не приходит в голову как разбить эту рекурсию на две. Может у кого-то есть идеи?Спасибо
Код:
#include "stdafx.h"
#include <iostream>
#include "mpi.h"
 
 
using namespace std;
 
int n, m,sum[40],k=0;
void print_terms(int left, int min = 0, int i = 0)
{
    cout<<"left ="<<left<<" min= "<<min<<" i="<<i<<endl;
    if (left < 0 || min == n)
        return;
    
    sum[i] = min;
    if (min != 0)
    {
        print_terms(left - min, min, i + 1);
    }
    print_terms(left - 1, min + 1, i);
    if (left == 0&&i==m)
    {
        for (int j = 0; j <= i; ++j)
           cout<< sum[j] << (j != i ? '+' : '\n');
        
    }
    
    if(i>m)
        return;
    
 
}
 
int main (int argc, char **argv)
{
 
    int size,rank;
MPI_Init(&argc,&argv); // Инициализация MPI
MPI_Comm_size(MPI_COMM_WORLD,&size); // Получение числа процессов
MPI_Comm_rank(MPI_COMM_WORLD,&rank); // Получение номера процесса
printf("Hello from process #%d of %d\n",rank,size);
    u:cin>> n>>m; 
    m=m-1;
    if(m>=n)
    {
        cout<<"Uncorrect.Repeat"<<endl;
        goto u;
    }
    
    print_terms(n);
    MPI_Finalize();
    system("pause");
}
Вероника99 вне форума Ответить с цитированием
Старый 17.03.2016, 18:39   #2
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Никто не знает?((
Вероника99 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разработать рекурсивную функцию с++ L.Julia Visual C++ 0 08.05.2013 12:30
Преобразовать рекурсивную функцию akademochka Общие вопросы C/C++ 4 05.03.2013 12:40
Описать рекурсивную функцию! glebast Помощь студентам 3 28.12.2011 20:51
Написать рекурсивную функцию. Solnze2 Помощь студентам 0 20.05.2011 15:14
разбить программу на функции main и пользовательскую функцию Ferghost Общие вопросы C/C++ 2 31.05.2009 18:15