题解
2024-10-17 20:11:51
发布于:湖南
9阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
const int N=500;
int res[N];
void mul(int a[],int b[],int c[]){
int tmp[N];
memset(tmp,0,sizeof(tmp));
for(int i=0;i<N;i++) for(int j=0;j<N;j++) if(i+j<N) tmp[i+j]+=a[i]b[j];
for(int i=0,t=0;i<N;i++){
t+=tmp[i];
c[i]=t%10;
t/=10;
}
}
void quickpo(int p){
res[0]=1;
int a[N]={2};
while(p){
if(p&1) mul(a,res,res);
p>>=1;
mul(a,a,a);
}
res[0]--;
}
int main(){
int p;
cin>>p;
cout<<int(plog10(2))+1<<endl;
quickpo(p);
for(int i=0,k=499;i<10;i++) for(int j=0;j<50;j++,k--) cout<<res[k];
return 0;
}
全部评论 1
114514
2024-10-17 来自 湖南
0你学废了吗
2024-10-17 来自 湖南
0老乡
2024-10-17 来自 湖南
0
有帮助,赞一个