我已经给出了下面的代码,我试着研究这个功能是如何工作的。我不明白当你进入while循环时会发生什么。结果是否乘以x值的幂?为什么n会降低?我主要不明白result *=x;
的作用。
//power(x, n) raises integer x to the power n
//no negative powers
int power(int x, unsigned n)
{
int result=1;
while (n>0)
{
result *= x;
--n;
}
return result;
}
答案 0 :(得分:4)
提示,以下几行是等效的(在此上下文中):
result *= x;
result = result * x;
--n;
n = n - 1;
所以你的函数写得尽可能简单:
int power(int base, int exponent) {
int result = 1;
while (exponent > 0) {
result = result * base;
exponent = exponent - 1;
}
return result;
}
你现在应该更容易理解它。
答案 1 :(得分:0)
power
的{{1}}函数只是乘以x倍。
(x,n)
表示result *= x;
。
result = results * x;
循环确保while
已乘以x
次。
n
表示--n
。如果n = n - 1
,则表示n=0
已乘以x
次。然后,循环结束。