Cod sursa(job #1074236)

Utilizator bghimisFMI Ghimis Bogdan bghimis Data 7 ianuarie 2014 13:20:25
Problema Factorial Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#include <iostream>
using namespace std;

ifstream in ("fact.in");
ofstream out("fact.out");

int nr_zerouri (int a, int suma = 0)
{
	if (a == 0)
		return suma;
	else
		return nr_zerouri (a / 5, suma + a / 5);
}

int main()
{
	int n; in >> n;

	int stanga = 1; int dreapta = 5000000;

	if (n == 0)
	{
		out << 1;
		return 0;
	}

	int middle = 0;
	while (stanga <= dreapta)
	{
		middle = stanga + (dreapta - stanga) / 2;
		int zerouri = nr_zerouri(middle);

		if (zerouri == n && middle % 5 == 0)
			goto raspuns;
		else
			if (zerouri >= n)
				dreapta = middle;
			else
				stanga = middle;
	}

raspuns:
	out << middle;

	return 0;
}