help样例能过,0分求助
查看原帖
help样例能过,0分求助
753269
徐殿崴2011楼主2022/8/18 22:48
#include <bits/stdc++.h>
using namespace std;
int p,rev[1100],f[1100],sav[1100];
void cheng1()
{
	memset(sav,0,sizeof(sav));
	for(int i = 1;i <= 500;i++)
	{
		for(int j= 1;j <= 500;j++)
		{
			sav[i+j-1]+=rev[i]*f[j];
			sav[i+j]+=sav[i+j-1]/10;
			sav[i+j-1]%=10;
		}
	}
	memcpy(rev,sav,sizeof(rev));
} 

void cheng2()
{
	memset(sav,0,sizeof(sav));
	for(int i = 1;i <= 500;i++)
	{
		for(int j= 1;j <= 500;j++)
		{
			sav[i+j-11]+=f[i]*f[j];
			sav[i+j]+=sav[i+j-1]/10;
			sav[i+j-1]%=10;
		}
	}
	memcpy(f,sav,sizeof(f));
}
int main() {
	cin>>p;
	cout<<(int)(p*log10(2)+1);
	rev[1]=1;
	f[1] = 2;
	while(p!=0)
	{
		if(p%2==1)
		{
			cheng1();
		}
		p/=2;
		cheng2();
	}
	rev[1]--;
	for(int i = 500;i >= 1;i--)
	{
		if(i%50==0) cout<<endl;
		cout<<rev[i];
	}
	
	return 0;
}

大佬们看看有什么问题

2022/8/18 22:48
加载中...