我很难确定何时使用int、double和long。
我正在计算整数的幂,只要提供的幂不是负数,就返回结果。
对于作业,我需要使用以下代码开始:
public static long powerN(int number, int power) {
以下是我的想法:
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;
}
}
}
我知道我弄乱了int、double或long的使用,但我不知道如何修复它。
如果您想使用Math.pow
:
public static long powerN(int number, int power) {
return (long) Math.pow(number, power);
}
你可以自己做:
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;
}
附言:这不处理负幂。
等待如果您自己在做,请使用更快的算法,如平方求幂,如下所示:
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;
}
我如何解释以下内容: 打印2.29999 打印2.3
问题内容: 我编写了一个简单的Java程序,如下所示: 由于变量被声明为double,所以我期望这个程序的结果是,但是我得到的输出为 请帮助我理解这一点。 问题答案: 将为0。由于和均为整数。 如果您有,如果答案不是一个完美的整数,则小数点后的数字将被删除。在您的情况下为0.4,因此您将获得0。 你可以施放或到(其他的将被隐式转换)
问题内容: Java中还有其他方法可以计算整数的幂吗? 我现在使用,但是它返回一个,这通常是很多工作,并且在您只想使用s 时看起来不太干净(那么幂也会总是产生)。 有没有像Python 一样简单的东西? 问题答案: 整数只有32位。这意味着其最大值为。如您所见,对于非常小的数字,您很快就会得到不能再用整数表示的结果。这就是使用的原因。 如果要任意整数精度,请使用。但这当然效率较低。
问题内容: 我了解doublenot运算符在JavaScript中的作用。我很好奇它的用法,以及我最近的断言是否正确,我对此很好奇。 我说这既没有意义,也不是因为和都将someVar评估为布尔值,所以!! 是多余的。 实际上,我唯一想到使用double not运算符是合法的,是如果您想与另一个布尔值进行严格比较(因此可能返回的值显式地期望为true或false)。 它是否正确?当我注意到jQuer
描述 (Description) C库函数double ldexp(double x, int exponent)返回x乘以2表示幂的exponent 。 声明 (Declaration) 以下是ldexp()函数的声明。 double ldexp(double x, int exponent) 参数 (Parameters) x - 这是表示有效数的浮点值。 exponent - 这是expo
描述 (Description) C库函数double frexp(double x, int *exponent)返回值是尾数, exponent指向的整数是指数。 结果值是x = mantissa * 2 ^ exponent 。 声明 (Declaration) 以下是frexp()函数的声明。 double frexp(double x, int *exponent) 参数 (Param