متاسفانه من کد شما رو مطالعه نکردم, و بسیار تعجب کردم, برنامه ی فاکتوریل چند خط بیشتر نیست , شاید منظور شما فورمول پیچیده تریه .

برنامه ساده فاکتوریل :


#include
<iostream>
using std::cin;
using std::cout;
using std::endl;
int main() {
int num=0;
cout<<
"Enter I-num : ";cin>>num;

int i=num;
while(i>2) {
i--;
num*=i;
}
cout<<
"fact : "<<num;
cin>>num;
return 0;
}