递归求阶乘 题解:
记忆化递归
#include<iostream>
using namespace std;
const int N=21;
typedef long long ll;
ll dp[N]={1,1};
ll t,n;
ll fact(ll n)
{
if(dp[n])
return dp[n];
ll x=n*fact(n-1);
dp[n]=x;
return dp[n];
}
int main()
{
cin>>t;
while(t--)
{
cin>>n;
cout<<fact(n)<<endl;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发