Cod sursa(job #363433)

Utilizator digital_phreakMolache Andrei digital_phreak Data 13 noiembrie 2009 10:09:40
Problema Nunta Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
using namespace std;

int A[2000],B[2000],C[2000];
int N;

ifstream fin("nunta.in");
ofstream fout("nunta.out");

void copy(int X[],int Y[]) {
	int i;
	memset(Y,0,sizeof(Y));
	Y[0] = X[0];
	for (i=1;i<=X[0];++i)
		Y[i] = X[i];
}

void add(int X[],int Y[]) {
	int i,t = 0;
	for (i=1; i <= X[0] || i <= Y[0] || t; i++ , t /= 10) {
		if (i > X[0]) X[i] = 0;
		if (i > Y[0]) Y[i] = 0;
		t += X[i] + Y[i];
		X[i] = t % 10;
	}
	X[0] = i - 1;
}

int main() {
	int i;
	
	A[0] = 1;
	A[1] = 1;
	B[0] = 1;
	B[1] = 1;
	
	fin >> N;
	
	for (i=0;i<N;++i) {
		copy(A,C);
		copy(B,A);
		copy(C,B);
		add(B,A);
	}
	
	for (i=1;i<=A[0];++i)
		fout << A[i];
		
	fout << "\n";
	
	fin.close();
	fout.close();
	
	return 0;
}