求助!全部RE 样例正确
查看原帖
求助!全部RE 样例正确
370102
njz1234楼主2020/8/13 22:55
#include<bits/stdc++.h>
#include<cmath>
using namespace std;
string s;
long  a[1000],b[1000],q,p,c[501];
void HAA()
{
	int i,lena,lenb,x,j;
	memset(c,0,sizeof(c));
	for(i=1;i<=505;i++)
	{
		for(j=1;j<=505;j++)
		{
			c[i+j-1]=a[i]*b[j]+c[i+j-1];
		}
	}
	for(int i=1;i<505;i++)
        if(c[i]>=10)
    {
        c[i+1]+=c[i]/10;
        c[i]%=10;
    }
	memcpy(b,c,sizeof(b));
 } 
void HAA2()
{
	int i,lena,lenb,x,j;
	memset(c,0,sizeof(c));
	for(i=1;i<=505;i++)
	{
		for(j=1;j<=505;j++)
		{
			c[i+j-1]=a[i]*a[j]+c[i+j-1];
		}
	}
	for(int i=1;i<505;i++)
        if(c[i]>=10)
    {
        c[i+1]+=c[i]/10;
        c[i]%=10;
    }
	memcpy(a,c,sizeof(a));
 } 
void fastPower() {
    while (p > 0) {
        if (p & 1) {
            HAA();
        }
        p>>= 1;
        HAA2();
    }
}
int main()
{
	int i,sum;
	a[1]=2;
	b[1]=1;
	cin>>p; 
	q=(int)(log10(2)*p+1);
	cout<<q<<endl;
	fastPower();
	b[1]-=1;
    for(i=500;i>=1;i--)
    {
    	if(i%50==0&&i!=500)cout<<endl;
    	cout<<b[i];
    }
 } 
2020/8/13 22:55
加载中...