#include <stdio.h>
#include <stdlib.h>
int main(){
int a,n,i,k,t,c;
int ans[100000];
for(;;){
if(scanf("%d %d %d %d",&a,&n,&i,&k)==EOF) break;
for(t=0;t<sizeof(ans)/4;++t) ans[t]=0; /*歸零*/
for(ans[0]=1,t=0;n;--n){
for(c=0;c<=t;++c) ans[c]*=a; /*長整數乘法*/
for(c=0;c<=t;++c){/*逢10進位*/
if(ans[c]>=10){
ans[c+1]+=ans[c]/10;
ans[c]%=10;
if(c+1>t) t++;/*紀錄現在最高位*/
}
}
}
for(;k;--k,--t) printf("%d",ans[t+1-i]);
}
return 0;
}
自己電腦跑 很快
也有跑過某位大大 給的資測 99 5678 32 9876
不超過1秒
請問到底是哪裡寫不好 或者哪裡需要再優化???