记录编号 |
231949 |
评测结果 |
AAAAAAAAAAAAAA |
题目名称 |
[暑假培训2012] 残酷的数学老师 |
最终得分 |
100 |
用户昵称 |
liu_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;
}