还是纯模拟,只可意会,不可言传,回到4年级,然后自己体会
#include <stdio.h>
#include <string.h>
using namespace std;
#define MAX 40001
int s[MAX];
int nbit;
void Init();
void EXP(int nb,int ne);
void vout(int x);
int main()
{
int base,exp;
while(~scanf("%d%d",&base,&exp))
{
Init();
EXP(base,exp);
vout(nbit);
}
return 0;
}
void Init()
{
s[0]=1;
nbit=1; //字符串位数
}
void EXP(int nb,int ne)
{
int i,j,ncf,nsum;
for(i=0;i<ne;i++)
{
ncf=0;
for(j=0;j<nbit;j++)
{
nsum=nb*s[j]+ncf;
s[j]=nsum%10;
ncf=nsum/10;
}
while(ncf)
{
s[j++]=ncf%10;
ncf/=10;
}
nbit=j;
}
}
void vout(int x)
{
int i;
for(i=x-1;i>=0;i--)
{
printf("%d",s[i]);
}
printf("\n");
}