计算n的n次方:
#include
int a[300000],a1[300000];b[100];
void fwa()
{
int i=0;
for(i=0;i<300000;i++)
a[i]=-1;
}
void fwa1()
{
int i=0;
for(i=0;i<300000;i++)
a1[i]=-1;
}
void fwb()
{
int i=0;
for(i=0;i<100;i++)
b[i]=-1;
}
void fl(int x)
{
int i=0;
fwb();
if(x==0)
b[i]=0;
else
for(i=0;x!=0;i++)
{
b[i]=x%10;
x=x/10;
}
}
main()
{
int i=0,j=0,n,m=0,k;
for(;;)
{
fwa();
fwa1();
printf("请输入n值:\n");
scanf("%d",&n);
fl(n);
for(i=0;b[i]!=-1;i++)
a[i]=b[i];
for(m=0;m
for(i=0;a[i]!=-1;i++)
{
a1[i]=a[i]*n;
}
fwa();
for(i=0;a1[i]!=-1;i++)
{
fl(a1[i]);
for(j=0;b[j]!=-1;j++)
{
if(a[i+j]!=-1)
{
if(b[j]+a[i+j]<10)
a[i+j]=b[j]+a[i+j];
else
{
k=b[j]+a[i+j];
a[i+j]=k%10;
if(a[i+j+1]!=-1)
a[i+j+1]=1+a[i+j+1];
else
a[i+j+1]=1+a[i+j+1]+1;
}
}
else
{
if(b[j]+a[i+j]<10)
a[i+j]=b[j]+a[i+j]+1;
else
{
k=b[j]+a[i+j];
a[i+j]=k%10+1;
if(a[i+j+1]!=-1)
a[i+j+1]=1+a[i+j+1];
else
a[i+j+1]=1+a[i+j+1]+1;
}
}
}
}
}
for(i=0;a[i]!=-1;i++);
j=i;
for(i--;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n一共%d位\n",j);
}
}