Swe*_*lo7 5 java double int long-integer
我无法弄清楚何时使用 int、double 和 long。
我正在计算整数的幂并返回结果,只要提供的幂不是负数。
对于作业,我需要使用以下代码开始:
public static long powerN(int number, int power) {
Run Code Online (Sandbox Code Playgroud)
这是我想出的:
public class PowerCalculator
{
/**
* Calculate the non-negative power of an integer number. If a negative power is input, the method returns 1.
*
* @param number The number to take power.
* @param power The power factor to be taken to.
* @return The calculation result after taking power of the integer number.
*/
public static long powerN(int number, int power) {
if (power > 0)
{
double result = (Math.pow(number, power));
return result;
}
else
{
return 1;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道我搞砸了 int、double 或 long 的使用,但我不知道如何解决。
小智 5
等待!如果您自己做,请使用更快的算法,例如通过平方求幂,如下所示:
long powerN(long number, int power){
long res = 1;
long sq = number;
while(power > 0){
if(power % 2 == 1){
res *= sq;
}
sq = sq * sq;
power /= 2;
}
return res;
}
Run Code Online (Sandbox Code Playgroud)
你可以自己做:
public static long powerN(
int number,
int power
) {
if(power == 0) return 1;
int result = number;
while(power > 1) {
result*=number;
power--;
}
return (long)result;
}
Run Code Online (Sandbox Code Playgroud)
PS:这不处理负权力。
| 归档时间: |
|
| 查看次数: |
16845 次 |
| 最近记录: |