Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
110872 | 吴宗桦 | 高精度幂 | C++ | 运行超时 | 90 | 1959 MS | 840 KB | 771 | 2023-11-17 13:46:34 |
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int main() { char a1[50005]; int a[50005],b[50005],c[50005],a2,b2,c2=1,d,e,x; long long u,v; bool p=1; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); cin>>a1>>v; a2=strlen(a1); for(d=0;d<=a2-1;d++) a[a2-d]=a1[d]-48; a[1]-=1; c[1]=1; for(u=1;u<=v;u++) { for(d=1;d<=c2;d++) b[d]=c[d]; b2=c2; for(d=1;d<=a2;d++) { x=0; for(e=1;e<=b2;e++) { c[d+e-1]=a[d]*b[e]+x+c[d+e-1]; x=c[d+e-1]/10; c[d+e-1]%=10; } c[d+b2]=x; } c2=a2+b2; while(c[c2]==0&&c2>1) c2--; if(c2>=1000) c2=1000; } if(c2>=1000) c2=1000; for(d=c2;d>=1;d--) cout<<c[d]; return 0; }