Ниже приведен код
Код: Выделить всё
#include
#include
using namespace std;
using namespace chrono;
class Fact{
struct Node {
unsigned long long data, value;
Node* Rptr;
Node* Lptr;
Node(): data(0), value(0), Rptr(nullptr), Lptr(nullptr) {}
Node(int d, int v): data(d), value(v), Rptr(nullptr), Lptr(nullptr) {}
};
Node* root;
public:
Fact(): root(nullptr) {}
Node* inTree(Fact::Node* ptr, int data);
Node* insertInTree(Fact::Node* ptr, int data, int value);
unsigned long long findFact(int num);
void deleteTree(Node* root) {
if (root == NULL) {
return;
}
deleteTree(root->Lptr);
deleteTree(root->Rptr);
delete root;
}
~Fact() {
deleteTree(root);
}
};
unsigned long long factorial(int n) {
return (n < 1) ? 1 : n*factorial(n-1);
}
int main() {
Fact fact;
//DP solution
auto start = high_resolution_clock::now();
auto answer = fact.findFact(20);
auto stop = high_resolution_clock::now();
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79309141/solution-to-factorial-problem-using-dynamic-programming-resulting-in-more-time-t[/url]