Cod sursa(job #552216)

Utilizator tudorsTudor Siminic tudors Data 11 martie 2011 20:55:50
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
using namespace std;
int n,i;
int Fa[1001],Fb[1001],Fc[1001];
int fa,fb,fc,z;

ifstream f("nunta.in");
ofstream g("nunta.out");

void suma(int Fa[1001], int Fb[1001], int Fc[1001], int &fa, int &fb, int &fc)
{
	int i,t=0,s;
	if (fb>fa)
	for (i=1;i<=fb-fa;++i)
		Fa[++fa]=0;
	for (i=1;i<=fc;++i)
		Fc[i]=0;
	fc=0;
	for (i=1;i<=fb;++i)
	{
		s=Fb[i]+Fa[i]+t;
		Fc[++fc]=s%10;
		t=s/10;
	}
	if (t!=0)
		Fc[++fc]=t;
}

int main()
{
	f>>n;
	if (n<4)
	{
		if (n==1)
			g<<1;
		else if (n==2)
			g<<2;
		else if (n==3)
			g<<3;
		return 0;
	}
	else
	{
		fa=fb=1;
		Fa[1]=1;
		Fb[1]=2;
		for (i=3;i<=n;++i)
		{
			suma(Fa,Fb,Fc,fa,fb,fc);
			for (z=1;z<=fb;++z)
				Fa[z]=Fb[z];
			fa=fb;
			for (z=1;z<=fc;++z)
				Fb[z]=Fc[z];
			fb=fc;
		}
		for (i=fc;i>=1;--i)
			g<<Fc[i];
	}
	f.close();
	g.close();
	return 0;
}