谢谢 试编写算法,计算i!*2i的值并存入数组a

来源:百度知道 编辑:UC知道 时间:2024/05/09 10:42:35
试编写算法,计算i!*2i的值并存入数组a[0..arrsize-1]的第i-1个分量中(i=1,2,…n)。假设计算机中允许的整数最大值为maxint,则当n>arrsize或对某个k (1<= k<=n)使k!*2k>maxint时,应按出错处理。注意选择你认为较好的出错处理方法

不用那么复杂。我的程序:
#include <stdio.h>

#define arrsize 10
#define maxint 10000

main () {
int i, j;
int result;
int tmp;
int a[arrsize];

tmp = 1;
for (i=1; i<=arrsize; i++) {
tmp *= i;
result = tmp * 2 * i;
if (result >= maxint)
break;
else
a[i-1] = result;
}
for (j=0; j<i-1; j++)
printf ("a[%2d] = %5d\n", j, a[j]);
getch();
}

#include <stdio.h>

unsigned int _maxint = -1;
#define _N 10000
unsigned int a[_N];

int factorial(unsigned int n, unsigned int *r) {
unsigned int i;
unsigned int critical;

if ( !r ) {
return -1;
}
*r = 1;
for ( i = n;i > 1;i-- ) {
critical = _maxint / i;
if ( *r > critical ) {
return -1;
}
*r *= i;
}
return 0;
}

int arithmetic(unsigne