| 记录编号 | 
        132745 | 
        评测结果 | 
        AAAAAAAAAA | 
    
    
        | 题目名称 | 
        41.[NOIP 2003]麦森数 | 
        最终得分 | 
        100 | 
            
    
    
        | 用户昵称 | 
         席一鸣 | 
        是否通过 | 
        通过 | 
    
    
        | 代码语言 | 
        C++ | 
        运行时间 | 
        0.042 s  | 
    
    
        | 提交时间 | 
        2014-10-26 16:33:40 | 
        内存使用 | 
        0.32 MiB  | 
        
    
    
    
    		显示代码纯文本
		
		#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int r[500]={0},d[500]={0},t[500];
void m(int*a,int*b)
{
	int i,k;
	memset(t,0,sizeof(t));
	for(i=0;i<500;i++)
		for(k=0;k<500;k++)
			if(i+k<500)
				t[i+k]+=a[i]*b[k];
			else
				break;
	for(i=0;i<499;i++)
	{
		t[i+1]+=t[i]/10;
		a[i]=t[i]%10;
	}
	a[499]=t[499]%10;
}
main()
{
	freopen("mason.in","r",stdin);
	freopen("mason.out","w",stdout);
	int i,n;
	r[0]=1;
	d[0]=2;
	cin>>n;
	cout<<int(n*log10(2)+1)<<endl;
	while(n)
	{
		if(n&1)
			m(r,d);
		m(d,d);
		n>>=1;
	}
	r[0]--;
	cout<<char(r[499]+48);
	for(i=499;i>0;i--)
	{
		if(!(i%50))
			cout<<endl;
		cout<<char(r[i-1]+48);
	}
}