Подскажите пожалуйста как можно оптимизировать код или где можно почитать на эту тему?
Задание:
Степень
Время: 300ms, Память: 128MB, Сложность: 25% Для натуральных чисел A и B требуется вычислить значение A^B
Входной поток в первой строке содержит числа A и B, разделенные пробелом. (1 <= A <= 9, 1 <= B <= 104)
В выходной поток выведите одно число – результат возведения в степень, без лидирующих нулей.
#include
using namespace std;
int main()
{
int m[1000] = {0}, a, b, i, k, ost = 0, zoro, d = 2;
cin >> a >> b;
m[0] = a;
for(i = 1; i < b; i++)
{
for(k = 0; k <= 1000; k++)
{
m[k] = m[k] * a + ost;
ost = m[k] / 10;
m[k] %= 10;
d++;
}
}
/*подвожу к степени*/
for(i = 1000; i >= 0; i--)
{
if(m != 0)
{
zoro = i;
break;
}
}
/*вычисляю лидирующие нули*/
for(i = zoro; i >= 0; i--)
{
cout << m;
}
/*вывожу массив*/
}
Задание:
Степень
Время: 300ms, Память: 128MB, Сложность: 25% Для натуральных чисел A и B требуется вычислить значение A^B
Входной поток в первой строке содержит числа A и B, разделенные пробелом. (1 <= A <= 9, 1 <= B <= 104)
В выходной поток выведите одно число – результат возведения в степень, без лидирующих нулей.
#include
using namespace std;
int main()
{
int m[1000] = {0}, a, b, i, k, ost = 0, zoro, d = 2;
cin >> a >> b;
m[0] = a;
for(i = 1; i < b; i++)
{
for(k = 0; k <= 1000; k++)
{
m[k] = m[k] * a + ost;
ost = m[k] / 10;
m[k] %= 10;
d++;
}
}
/*подвожу к степени*/
for(i = 1000; i >= 0; i--)
{
if(m != 0)
{
zoro = i;
break;
}
}
/*вычисляю лидирующие нули*/
for(i = zoro; i >= 0; i--)
{
cout << m;
}
/*вывожу массив*/
}