题解
2023-08-12 17:20:18
发布于:浙江
6阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
typedef vector<int> vi;
const int N = 511;
vi a(N),b(N);
vi mul(vi x,vi y){
vi c(N2);
for(int i=1;i<=510;i++){
for(int j = 1;j+i<=510;j++){
c[i+j-1] += x[i]y[j];
c[i+j]+=c[i+j-1]/10 ;
c[i+j-1]%=10 ;
}
}
return c;
}
int main(){
int p;
cin>>p;
int n = 2;
a[1] = 2,b[1]=1;
cout<<int(plog10(2))+1<<endl;
while(p){
if(p%2) b= mul(a,b);
a=mul(a,a);
p/=2;
}
b[1]--;
for(int i=10;i>=1;i--){
for(int j=0;j<50;j++){
printf("%d",b[i50-j]);
}
}
return 0;
}
这里空空如也
有帮助,赞一个