计算i!×2^i的值并存入数组a[0…n-1]的第i-1个分量中 (i=1,2,…,n)。假设计算机中允许的整数最大值为MAXINT,则当对某个k(1≤k≤n)使k!×2^k>MAXINT时,应按出错处理。注意选择你认为较好的出错处理方法。
Status Series(int a[], int n)
/* 求i!*2^i序列的值并依次存入长度为n的数组a; */
/* 若所有值均不超过MAXINT,则返回OK,否则OVERFLOW */
{
int i,sum1=1,sum2=1;
if(n<0)
return OVERFLOW;
for(i=0;i<n;i++){
sum1*=(i+1);
sum2*=2;
if(sum1*sum2>MAXINT)
return OVERFLOW;
a[i]=sum1*sum2;
}
return OK;
}