记录编号 499200 评测结果 AAAAAAAAAA
题目名称 [NOIP 2003]麦森数 最终得分 100
用户昵称 Gravatar梦那边的美好ET 是否通过 通过
代码语言 C++ 运行时间 0.052 s
提交时间 2018-07-01 16:24:58 内存使用 0.33 MiB
显示代码纯文本
#include<iostream>  
#include<cstdio>
#include<cmath> 
#include<cstring>  
#include<algorithm>  
using namespace std; 
int n,a[1001],b[1001],c[1001];
int main(){ 
    freopen("mason.in","r",stdin);        
    freopen("mason.out","w",stdout);      
    cin>>n;
	cout<<(int)(n*log10(2.0)+1)<<endl;
	b[1]=2;a[1]=1;
	while(n!=0){
	    if(n%2!=0){
		    for(int i=1;i<=500;i++){
				for(int j=1;j<=500;j++){
					if((i+j-1)<=500)
						c[i+j-1]+=a[i]*b[j];
					else break;
				}
			}
			for(int i=1;i<=500;i++){
			    c[i+1]+=c[i]/10;
				a[i]=c[i]%10;
				c[i]=0;
			}
		}
		for(int i=1;i<=500;i++){
			for(int j=1;j<=500;j++){
				if((i+j-1)<=500)
					c[i+j-1]+=b[i]*b[j];
				else break;
			}
		}
		for(int i=1;i<=500;i++){
			c[i+1]+=c[i]/10;
			b[i]=c[i]%10;
			c[i]=0;
		}
		n/=2;
	}
	a[1]-=1;
	int pp=0;
	for(int i=500;i>=1;i--){
	    cout<<a[i];pp+=1;
		if(pp==50){
		    cout<<endl;
			pp=0;
		}
	}
    return 0;  
}