对于小整数,为什么不呢?
首先,使用重复添加实现乘法.然后,使用重复乘法实现pow().它会很慢,但它会正常工作.
有一个更快的求幂算法,称为Squaring的Exponentiation.但是,鉴于您没有快速乘法,我不确定它是否值得 - 您可能希望首先尝试实现快速乘法算法.
符合dmazzoni对c风格语法的反应:
int mulitply(int x, int y)
{
int product;
for (int i = 0; i<y; i++)
product += x;
return product;
}
int power(int x, int exponent)
{
int result = 1;
for (int i = 0; i < exponent; i++)
result = multiply(result, x);
return result;
}
Run Code Online (Sandbox Code Playgroud)