Cod sursa(job #2418487)

Utilizator eutu33eu tu el ea eutu33 Data 5 mai 2019 10:17:27
Problema Factorial Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.57 kb
// c++ test.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>
#include <fstream>

using namespace std;
int GetNumOfZeros(int x);
int BinarySearch(int p);
int CorrectAnswer(int x);

int main()
{
	ifstream fin("fact.in");
	ofstream fout("fact.out");
	//cout << "Hello World!\n";
	int p;
	fin >> p;
	fout << BinarySearch(p);
}


int GetNumOfZeros(int x)
{
	int div = 5, sum = 0;
	while (div <= x)
	{
		x = x / div;
		sum += x;
	}
	return sum;
}

int CorrectAnswer(int x)
{
	int val = GetNumOfZeros(x);
	while (GetNumOfZeros(x - 1) == val && x-1 > 0)
		x--;
	return x;
}


int BinarySearch(int p)
{
	int left = 0, right = 100000000, mid;
	while (left + 1 < right)
	{
		mid = (left + right) / 2;
		int num = GetNumOfZeros(mid);
		if (num == p)
			return CorrectAnswer(mid);
		else if (num < p)
			left = mid;
		else right = mid;
	}
	return -1;
}

// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu

// Tips for Getting Started: 
//   1. Use the Solution Explorer window to add/manage files
//   2. Use the Team Explorer window to connect to source control
//   3. Use the Output window to see build output and other messages
//   4. Use the Error List window to view errors
//   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
//   6. In the future, to open this project again, go to File > Open > Project and select the .sln file