#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
#define MAXN 1000
void addpo(int *n,int i)
{
int j=0;
int M=n[i];
while(M>=10)
{
j++;
M/=10;
n[i+j]+=M%10;
if(n[i+j]>=10)
addpo(n,i+j);
}
n[i]=(n[i]%10);
}
int main()
{
int n[MAXN];
int k,N;
while((scanf("%d",&N))!=EOF)
{
cin>>k;
int i,j;
memset(n,0,sizeof(n));
n[0]=1;
int o,M,count1=1;
for(o=0; o<k; o++)
{
for(i=count1; i>=0; i--) //k次方说明数字1对于n本身这个数字一共乘了k次
{
/*用j变量来存储最高位数*/
/*下面以n[i]为单位进行循环*/
n[i]*=N;
j=0;
M=n[i];
while(M>=10)
用数组进位的方法求解比较大的阶乘数字
最新推荐文章于 2021-12-22 10:27:41 发布