nyoj-655

f[i]=f[i-1]+f[i-2]  ( f[0]=1, f[1]=1

#include <cstdio>
#include<iostream>
#include<string.h>
#include<fstream>
using namespace std;	
int a[10000],b[10000];
int main()
{
	int t,i,j;
//	fstream cin("d:\\test.txt");
	cin>>t;
	while(t--)
	{
		string s;
		cin>>s;
		int n=s.size();
		if(n==1)
		{
			cout<<1<<endl;
			continue;
		}
		int up=0;
		int cnt=1;
		int tt;
		int flag=0;
		memset(a,0,sizeof(a));
		memset(b,0,sizeof(b));
		a[0]=1;
		b[0]=1;
		for(i=1;i<n;i++)
		{
			if(flag==0)
			{
				for(j=0;j<cnt;j++)
				{
					tt=a[j]+b[j]+up;
					a[j]=tt%10;
					up=tt/10;
				}
				if(up)
				{
					a[cnt]=up;
					up=0; 	
					cnt++;
				}
				flag=1;
			}
			else
			{
				for(j=0;j<cnt;j++)
				{
					tt=a[j]+b[j]+up;
					b[j]=tt%10;
					up=tt/10;
				}
				if(up)
				{
					b[cnt]=up;
					up=0; 
					cnt++;
				}
				flag=0;
			}
		}
		if(flag==0)
		{
			for(i=cnt-1;i>=0;--i)
				cout<<b[i];
			cout<<endl;
		}
		else
		{
			for(i=cnt-1;i>=0;--i)
				cout<<a[i];
			cout<<endl;
		}
	}
	return 0;
}

  

)

 

你可能感兴趣的:(nyoj-655)