Cod sursa(job #1563949)

Utilizator krityxAdrian Buzea krityx Data 7 ianuarie 2016 14:11:33
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

using namespace std;

int numberOfZeroes(unsigned int n)
{
	int count = 0;
	for (int i = 5; n / i >= 1; i *= 5)
	{
		count += n / i;
	}
	return count;
}

int binarySearch(unsigned int left, unsigned int right, unsigned int target)
{
	int mid = (left + right) / 2;

	int nz = numberOfZeroes(mid);
	if (nz == target)
	{
		return mid - (mid % 5);
	}
	else
	{
		if (left == right)
		{
			return -1;
		}
		if (nz > target)
		{
			return binarySearch(left, mid, target);
		}
		else
		{
			return binarySearch(mid + 1, right, target);
		}
	}
}

int main()
{
	const int max = 1 << 31;
	unsigned int P;
	ifstream f("fact.in");
	f >> P;
	f.close();



	ofstream g("fact.out");
	g << binarySearch(0, max, P);
	g.close();
	return 0;
}