this code gives negative output for n=87,can you tell the mistake ?
#include
using namespace std;
int main() {
int t,n;
cin>>t;
while(t–)
{
cin>>n;
long a[n+1];
a[0]=1;
a[1]=1;
for(int i=2;i<=n;i++)
{
a[i]=a[i-1] + (i-1)*a[i-2];
// cout<<a[i]<<endl;
}
cout<<a[n]<<endl;
}
return 0;
}