/**/ /*************************************************************************** 程序为计算 x^n, 示例中,x不大于 10000Copyright (C) 2007 jixingzhong. The Institue of Computer System****************************************************************************/ #include < stdio.h > #include < stdlib.h > int main( int argc, char * argv[]) ... { long i, j, c, len, temp = 0; long x=1, n=1; printf("input x [from 1 to 10000] please! x = "); while(scanf("%ld", &x) && x != 0) // x=0 时退出循环 ...{ long *a = new long[4 * n]; //动态分配空间, 为粗略估计值 a[0] = 1, len = 1; printf("n = "); scanf("%ld", &n); for(i = 1; i <= n; i++) ...{ c = 0; for(j = 0; j < len; j++) ...{ temp = a[j] * x + c; c = temp / 100000; // 10万 进制 , 控制进位 a[j] = temp % 100000; } while(c > 0) //处理进位 ...{ len = len + 1; a[len - 1] = c; c /= 100000; a[len - 1] %= 100000; } } printf("x^n = %ld", a[len - 1]); for(i = len - 2; i >= 0; i--) //输出结果, 从高位开始输出 printf("%05ld", a[i]); printf(" %ld", len); printf(" if you want to quit ,please input x=0! x = "); delete a; //释放数组空间 } system("pause"); return 0;}