git » metnum-tp1.git » master » tree

[master] / fcont_int.cpp

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <utility>
#include "aritmetica.hpp"
#include "util.hpp"

using namespace std;

int prec;

pair<numero, numero> a_0(void)
{
	return pair<numero, numero> (numero(prec, 1), numero(prec, 2));
}

pair<numero, numero> siguiente(pair<numero, numero> ant)
{
	numero ant_b = ant.first;
	numero ant_c = ant.second;

	pair<numero, numero> ret;
	ret.first = ant_c;
	ret.second = (2 * ant_c) + ant_b;

	return ret;
}

int main(int argc, char *argv[])
{
	if (argc != 3) {
		printf("Uso: %s <prec> <nterm>\n", argv[0]);
		return 1;
	}

	prec = atoi(argv[1]);
	int nterm = atoi(argv[2]);

	pair<numero, numero> a_i = a_0();

	/* Loop de la fracción, nterm - 1 términos ya que el último es
	 * distinto */
	for (int i = 0; i < nterm; i++) {
		a_i = siguiente(a_i);
	}

	numero n = (a_i.first / a_i.second) + 1;

	print_result(nterm, n);

	return 0;
}