計算2!*2^i、MAXINTに達しているかどうかを判断
計算2!*2^i、MAXINT a[0]=1 a[1]=2*1*a[0]a[3]=2*3*a[2]前項に加えて2とカウントのiを乗じたか否かを判断し、iは階乗の項に相当する
#include<iostream>
#include<stdlib.h>
#define MAXINT 65535
#define ArrSize 100
int fun(int i);
int main()
{
int i, k;
int a[ArrSize];
std::cout << "Enter k:";
std::cin >> k;
if (k > ArrSize - 1)
exit(0);
for (i = 0; i <= k; i++){
if (i == 0) a[i] = 1;
else{
if (2 * i * a[i - 1] > MAXINT) exit(0);
else a[i] = 2 * i * a[i - 1];
//a[0] = 1 a[1] = 2 * 1 * a[0] a[2] = 2 * 2 * a[1] a[3] = 2 * 3 * a[2]
// 2 i,i
}
}
for (i = 0; i <= k; i++){
if (a[i] > MAXINT) exit(0);
else std::cout << a[i] << " ";
}
system("pause");
return 0;
}