Cod sursa(job #2645652)

Utilizator IRadu1529Radu Ionescu IRadu1529 Data 29 august 2020 12:37:14
Problema Factorial Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

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

int nrcifzero(long long int n, int& ucEL)
{
	int nr = 0;

	while (n && n % 10 == 0)
	{
		nr++;

		n /= 10;
	}

	ucEL = n % 10;

	return nr;
}

int main()
{
	long long int el, n, rezultat;

	int uc, ucEl, limita, nr0;

	fin >> n;

	vector<long long int> v;

	v.push_back(1);
	v.push_back(5);
	v.push_back(10);

	limita = 2;///am deja raspunsul pana la 2 de 0 la final

	uc = 8;///ultima cifra(de la stanga la dreapta) care nu e 0 pentru 10!

	el = 11;///urmatorul dupa 10

	if (n < 3)
	{
		fout << v[n];

		return 0;
	}

	while (limita != n)
	{
		rezultat = el * uc;

		uc = rezultat % 10;

		if (uc == 0)
		{
			int plus = nrcifzero(rezultat, uc);

			if (plus == 0)
				plus = 1;

			v.push_back(el);

			limita += plus;
		}

		el++;
	}

	fout << v.back();
}