Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
106544 毛泓博(做题专用,大号Fess) 高精度幂 C++ 解答错误 10 0 MS 260 KB 673 2023-10-12 14:12:18

Tests(1/10):


#include<bits/stdc++.h> using namespace std; string a1,b1; int a[101]={0},b[81]={0},s[10004],lena,lenb,lens; int main() { cin>>a1>>b1; lena=a1.length(); lenb=b1.length(); for(int i=1;i<=lena;i++) b[i]=a[i]=a1[lena-i]-48; for(int i=1;i<=lenb;i++) b[i]=b1[lenb-i]-48; lens=lena*2-1; for(;!lenb;b[1]--) { int k=2; while(b[k]<0&&k<=lenb) { b[k]=0; b[++k]--; } if(!b[lenb]) lenb--; for(int j=1;j<=lena;j++) { s[2*j-1]+=(a[j]*a[j]); int l=j; while(s[2*l-1]>=10) { s[2*l]+=(s[2*l-1]/10); s[2*l-1]%=10; } } } while(!s[lens]&&lens>1) lens--; for(int i=lens;i>=1;i--) cout<<s[i]; return 0; }


测评信息: