Cod sursa(job #854938)

Utilizator roots4Irimia Alexandru Gabriel roots4 Data 14 ianuarie 2013 13:12:03
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>
#include<cstring>
using namespace std;

FILE*f=fopen("nunta.in","r");
FILE*g=fopen("nunta.out","w");

int a[300],b[300],c[300];
int n,i;

void add(int a[],int b[],int c[]){
	memset(c,0,sizeof(c));
	int maxim=a[0],T=0;
	if(b[0]>maxim)
		maxim=b[0];
	c[0]=maxim;
	for(int i=1;i<=maxim;i++){
		c[i]=T+a[i]+b[i];
		T=c[i]/10;
		c[i]%=10;
	}
	while(T){
		c[++c[0]]=T%10;
		T/=10;
	}
}

int main(){
	
	fscanf(f,"%d",&n);
	
	a[++a[0]]=1;
	b[++b[0]]=2;
	
	if(n<=2)
		fprintf(g,"%d",n);
	else{
		n-=2;
		for(i=1;i<=n;i++){
			add(a,b,c);
			memcpy(a,b,sizeof(a));
			memcpy(b,c,sizeof(a));
		}
		for(i=b[0];i>=1;i--)
			fprintf(g,"%d",b[i]);
	}
	
	return 0;
}