از اردر n هست الگوریتم زیر که در حد خودش خوبه
این الگوریتم با یه مقدار کار ریاضی به دست اومده و به طور کلی از این تساوی توش استفاده شده
(K+1)! - K! = K*K!
تو الگوریتم دوم هم از روش maryam استفاده کردم منتها به یه کم تغییرات
#include <iostream>
using namespace std;
int main()
{
int n, fact=1, sum=0;
cin>>n;
for(int i=1; i*2<=n; i++)
{
sum+=(-1)*(2*i-1)*fact;
fact*=2*i*(2*i+1);
}
if(n%2==1)
sum+=fact;
cout<<sum<<endl;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int n, fact=1, sum=0;
int sign=1;
cin>>n;
for(int i=1; i<=n; i++)
{
fact*=i;
sum+=sign*fact;
sign*=-1;
}
cout<<sum<<endl;
return 0;
}