记录编号 231949 评测结果 AAAAAAAAAAAAAA
题目名称 [暑假培训2012] 残酷的数学老师 最终得分 100
用户昵称 Gravatarliu_runda 是否通过 通过
代码语言 C++ 运行时间 0.412 s
提交时间 2016-02-28 12:24:47 内存使用 0.86 MiB
显示代码纯文本
#include<cstdio>
long long num[50000];//压七位,10000000进制 
int ans[50005];int cnt=0;
int len=0;
void mult(int x){
	for(int i=0;i<len;++i){
		num[i]*=x;
	}
	for(int i=0;i<len;++i){
		if(num[i]>=10000000){
			num[i+1]+=num[i]/10000000;
			num[i]%=10000000;
			if(i==len-1)len++;
		}
	}
	while(num[len-1]>=10000000){
		num[len]+=num[len-1]/10000000;
		num[len-1]%=10000000;
		len++;
	}
}
void output(){
	int cnt=1,tmp=num[len-1];
	for(int i=0;i<len-1;++i){
		int tmp=num[i],cntnow=0;
		while(tmp!=0){
			ans[cnt++]=tmp%10;
			tmp/=10;
			cntnow++;
		}
		if(cntnow<7){
			for(;cntnow<7;++cntnow){
				ans[cnt++]=0;
			}
		}
	}
	while(tmp!=0){
		ans[cnt++]=tmp%10;
		tmp/=10;
	}
	for(int i=cnt-1;i>=1;--i){
		putchar(ans[i]+'0');
		if((cnt-i)%70==0)putchar('\n');
	}
}
int main(){
	freopen("cruel1.in","r",stdin);
	freopen("cruel1.out","w",stdout);
	int n,p;
	scanf("%d %d",&n,&p);
	int tmp=n;
	while(n!=0){
		num[len++]=n%10000000;
		n/=10000000;
	}
	for(int i=1;i<p;++i){
		mult(tmp);
	}	
	output();
	fclose(stdin);fclose(stdout);
	return 0;
}