呵呵,当然不能跟人家搞技术的比啦。
偶笔记本7秒左右。
双核T5870 2GHz
偶笔记本7秒左右。
双核T5870 2GHz
程序代码:#include<stdio.h>
#define BASE 2
#define EXPONENT 100000
int main(void)
{
int result[50000] = {-1,1,0}; //初始化,数组从1开始记数
int i, j, k, digit;
digit = 1; //每次阶乘得出结果的位数
for (i = 1; i <= EXPONENT; i++)
{
for(j = 1; j <= digit; j++) //先做每一位与i的乘积放在一个数组空间中
{
result[j] *= BASE;
}
for (k = 1; k <= digit; k++) //调整个元素的值,使之在0--9之间
{
result[k+1] += result[k] / 10000;
result[k] %= 10000;
if (result[digit+1] > 0) //位数增加
digit++;
}
}
printf("%d^= ", BASE);
printf("%d", result[digit]);
for (i = digit-1; i > 0; i--)
{
if( result[i] < 10 )
printf("%s", "000");
else if ( result[i] < 100 )
printf("%s", "00");
else if ( result[i] < 1000 )
printf("%s", "0");
printf("%d", result[i]);
}
printf("\n");
return 0;
}
