Java 写一个下降功率法
然而,在许多组合公式中有用的降幂相关运算中,通过在指数下面加下划线的语法表示,乘以乘积的每一项总是比前一项少一项。例如,下降功率83将被计算为8×7×6=336。类似地,下降功率105将等于10×9×8×7×6=30240。如果基数n为负值,则无任何重要变化。例如,下降功率(-4)5的计算方法与-4*-5*-6*-7*-8=-6720的计算方法完全相同 此方法应计算并返回下降功率nk,其中n可以是任何整数,k可以是任何非负整数。(类似于普通幂,n0=1表示任意n。)自动测试仪的设计使您的方法不需要担心潜在的整数溢出,只要您使用长类型的64位整数执行计算Java 写一个下降功率法,java,Java,然而,在许多组合公式中有用的降幂相关运算中,通过在指数下面加下划线的语法表示,乘以乘积的每一项总是比前一项少一项。例如,下降功率83将被计算为8×7×6=336。类似地,下降功率105将等于10×9×8×7×6=30240。如果基数n为负值,则无任何重要变化。例如,下降功率(-4)5的计算方法与-4*-5*-6*-7*-8=-6720的计算方法完全相同 此方法应计算并返回下降功率nk,其中n可以是任何整数,k可以是任何非负整数。(类似于普通幂,n0=1表示任意n。)自动测试仪的设计使您的方法不需
public static long fallingPower(int n, int k)
公共静态长跌落功率(int n,int k)
长结果=n;
对于(int i=n;i
我的方法对吗?你应该将
k
乘以,从n
开始,然后将每个因子递减一。你的代码目前没有任何意义。我会这样做:
public static long fallingPower(int n, int k)
long result = n;
for (int i = n; i < k; i--) {
result = result * n;
}
return result;
}
应该是:
public static long fallingPower(int n, int k)
if(k < 0) {
throw new IllegalArgumentException("Negative exponent");
}
long result = n;
for (int i = 1; i < k; i++) {
result = result * (n-i);
}
return result;
}
公共静态长跌落功率(int n,int k){
长结果=n;
for(int i=0;i
如果我没有错的话,这更多的是编程逻辑,而不是您的方法。我没有错误处理。我开始倒向,就像你一样,假设零的最小整数置换等于1,至少我们需要返回1。
你可以从n之前的k数开始,然后再相乘直到n
public static long fallingPower(int n, uint k){
long result = 1;
for(; k > 0; k--, n--){
result *= n;
}
return result;
}
公共静态长跌落功率(int n,int k)
{
长期结果=1;
对于(int i=1;i)你想确保你增加i或确保i>k。我意识到上面的评论与“下降功率法”是一样的顺便说一句,它实际上被称为置换。您可能还需要验证您的参数。k通常必须等于或大于1,且不超过n。n通常要求为正(大于0)。公共静态长fallingPower(int n,int k)long result=n;if(k;i++{result=result*n;}返回结果;}请不要在注释中张贴代码;格式会使其无法阅读。编辑您的问题,并在问题中添加格式正确的代码。请使用您的注释权限,而不是将注释混合到您的答案中。这样做。它将永远不会进入for循环并返回n
。但它应该根据requ为k=1返回n*n-1irement,对吗?不。那就是k=2
k
是因子的数量(因此称为指数)。
public static long fallingPower(int n, int k){
long result = n;
for (int i = 0; i < k; i++) {
n=n-1;
result = result * n;
}
return result;
}
public static long fallingPower(int n, uint k){
long result = 1;
for(; k > 0; k--, n--){
result *= n;
}
return result;
}
public static long fallingPower(int n, int k)
{
long result = 1;
for (int i = 1 ; i <= k ; i++) {
result = result * n;
n = n-1;
}
return result;
}