楼上的两个程序,显然没考虑溢出的情况,对稍微大些的n和x结果都是错的。如果n和x都是正整数的话,当x是2的若干次方时,直接通过移位运算就能得到结果。其它情况,你可以网上找找大整数乘法的高效算法来进行处理。
#includevoid main(){ int n,x,i; long m=1; scanf("%d%d",&n,&x); for(i=0;i m*=x; printf("%ld\n",m);}
int m=1;for(i=1;i<=n;i++)m=m*x;