发布评论
评论(4)
逆光下的微笑2024-11-25 19:05:29
我正在使用java编程语言。面试官限制你在方法中声明一个新变量,最好将它传递给函数。面试官没有限制你使用除法运算符(/),所以你可以使用它。
static double getNthPowerOfNumber(double originalNumber,
int power) {
if (power == 0) {
return 1;
}
if (originalNumber == 0) {
return 0;
} else {
originalNumber/=1/getNthPowerOfNumber(originalNumber, --power);
return originalNumber;
}
}
如果你想获得数字 3 的 5 次方,则编写 System.out.println("4..double..." + getNthPowerOfNumber(4, 1));
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
他们问你是否理解递归。考虑 x ^ k 对于某个整数 k,
将其转换为代码应该不会太糟糕。我们先用乘法,稍后再把它拿出来。
现在,摆脱乘法。由于 n * m = n / (1/m),我们可以将最后的计算重写为
power(x, --k) / (1/x)
:小数指数可能可以在相同的风格。如果他们希望以同样的方式处理无理指数,我会要求谷歌和相当多的时间来思考这个问题。
They're asking whether you understand recursion. Considering x ^ k for some integer k,
Turning this into code shouldn't be too bad. Let's use multiplication for now, and take it out later.
Now, to get rid of the multiplication. Since n * m = n / (1/m), we can rewrite the last calculation as
power(x, --k) / (1/x)
:Fractional exponents could probably be done in the same style. If they want irrational exponents to be handled in the same way, I'd ask for Google and a fair amount of time to think about the problem.