wuenzi @ 2024-08-08 11:58:22
#include<iostream>
#include<cstring>
using namespace std;
string cf(string n,string m){
int c[100005]={};
string ans="";
if(n=="0"||m=="0"){
return "0";
}
if(n[0]=='-'&&m[0]!='-'){
ans+="-";
n.erase(0,1);
}else if(n[0]!='-'&&m[0]=='-'){
ans+="-";
m.erase(0,1);
}else if(n[0]=='-'&&m[0]=='-'){
m.erase(0,1);
n.erase(0,1);
}
if(n.size()<m.size()){
swap(n,m);
}
for(int i=1;i<=m.size();i++){
for(int j=1;j<=n.size();j++){
int q=(m[i-1]-'0')*(n[j-1]-'0');
c[i+j-1]+=q;
}
}
// cout<<c[0]<<endl;
int l=m.size()+n.size();
// for(int i=1;i<l;i++){
// cout<<c[i]<<" ";
// }
// cout<<endl;
for(int i=l-1;i>0;i--){
c[i-1]+=c[i]/10;
c[i]%=10;
}
// for(int i=0;i<l;i++){
// cout<<c[i]<<' ';
// }
// cout<<endl;
if(c[0]>0){
int i=0;
while(i<=l&&c[i]==0){
i++;
}
if(i>l){
return "0";
}
for(;i<l;i++){
ans+=char(c[i]+'0');
}
}else{
int i=1;
while(i<=l&&c[i]==0){
i++;
}
if(i>l){
return "0";
}
for(int i=1;i<l;i++){
ans+=char(c[i]+'0');
}
}
return ans;
}
int cnt,q;
string k="1",a="2";
int main(){
int n;
cin>>n;
while(n){
if(n%2){
k=cf(k,a);
}
a=cf(a,a);
n>>=1;
}
k[k.size()-1]-=1;
cout<<k.size();
if(k.size()<500){
for(int i=0;i<500-k.size();i++){
if(i%50==0){
cout<<endl;
}
cout<<0;
cnt++;
}
for(int i=0;i<k.size();i++){
// cout<<1;
if((i+cnt)%50==0){
cout<<endl;
}
cout<<k[i];
}
}else{
for(int i=k.size()-500;i<k.size();i++){
// cout<<1;
if(q%50==0){
cout<<endl;
}
cout<<k[i];
q++;
}
}
return 0;
}
by sjy01 @ 2024-08-09 10:05:57
@wuenzi,这是我的AC代码:
#include<bits/stdc++.h>
using namespace std;
int p,sum[501],r[1001];
void pd(int p){
if(p==0) return;
pd(p/2);
for(int i=1;i<=500;i++){
for(int j=1;j<=500;j++){
if(p%2==0){
r[i+j-1]+=sum[i]*sum[j];
}else{
r[i+j-1]+=sum[i]*sum[j]*2;
}
}
}
for(int i=1;i<=500;i++){
sum[i]=r[i]%10;
r[i+1]+=r[i]/10;
}
for(int i=1;i<=1000;i++){
r[i]=0;
}
}
int main(){
cin>>p;
cout<<(int)(p*log10(2)+1)<<endl;
sum[1]=1;
pd(p);
for(int i=500;i>=2;i--){
cout<<sum[i];
if(i%50==1){
cout<<endl;
}
}
cout<<sum[1]-1<<endl;
return 0;
}
by sjy01 @ 2024-08-09 10:06:49
代码有点歪,将就看一下。
by wuenzi @ 2024-08-12 10:17:17
感谢,已关
by wuenzi @ 2024-08-12 10:18:15
好像早就互关了
by Ambrose0321 @ 2024-10-25 12:00:43
@wuenzi 你在哪个机构学的?