计算2!* 2^i,并判断是否达到MAXINT

来源:互联网 发布:2016旅行软件比例 编辑:程序博客网 时间:2024/06/07 17:32

计算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 100int 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;}
0 0