Informatică, întrebare adresată de r4zv4n, 9 ani în urmă

folosind metoda divide et impera sa se calculeze n factorial (n!). Multumesc anticipat

Răspunsuri la întrebare

Răspuns de StarBack
11
Salut!

#include "stdafx.h"
#include <iostream>

using namespace std;

int DivEtImp(int v[], int li, int ls)
{
         if (li == ls)
        {
                   return v[li];
        }
         else
         {
                    int m = li + (ls - li) / 2;

                    int a = DivEtImp(v, li, m);
                    int b = DivEtImp(v, m + 1, ls);

                    return(a * b);
         }
}

int main()
{

        int n;
 
        cin >> n;

        int *fact = new int[n];

        for (int i = 0; i < n; i++)
               fact[i] = i + 1;

        cout << DivEtImp(fact, 0, n - 1);
    return 0;
}
Alte întrebări interesante