Cod sursa(job #2838557)

Utilizator luiz_felipeLuiz Felipe luiz_felipe Data 24 ianuarie 2022 00:43:10
Problema Calcul Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <list>
using namespace std;
_int64 MOD = 1, SUM, A, C;
char B;
int i, nr;
list<int> result;
int value(char ch);
_int64 power(_int64 base, _int64 exp);

int main()
{
	ifstream f("calcul.in");
	ofstream g("calcul.out");
	f >> A >> B >> C;
	nr = value(B);
	for (i = 1; i <= C; ++i) MOD *= 10;
	for (i = 1; i <= nr; ++i) SUM += power(A, i);
	SUM %= MOD;
	for (; SUM; SUM /= 10) result.push_front(SUM % 10);
	while (result.size() != C) result.push_front(0);
	for (auto elem : result) g << elem;
	g << '\n';
}

int value(char ch)
{
	return ch >= '0' && ch <= '9' ? (int)ch - '0' : (int)ch - 'A' + 10;
}

_int64 power(_int64 base, _int64 exp)
{
	_int64 rez = 1;
	for( ; exp; exp >>= 1)
	{
		if (exp % 2)
		{
			rez *= base;
			--exp;
		}
		base *= base;
	}
	return rez;
}