呵呵,当然不能跟人家搞技术的比啦。
偶笔记本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; }