gpt4 book ai didi

java - 如何编写接受 2 个整数的递归排列方法

转载 作者:太空宇宙 更新时间:2023-11-04 06:49:20 25 4
gpt4 key购买 nike

我需要编写一个执行 n!/(n-r)! 的方法。这在 for 循环中很容易做到,但我无法递归地弄清楚。这是到目前为止我的代码。

public static int permut(int n, int r) {
if (r == 0) {
return 0;
} else if (r==1){
return n;
} else {
return n * permut(n, r-1)/permut(n,r-1);
}
}

我不知道如何设置返回。

最佳答案

本质上,您可以将其视为与普通阶乘相同,接受每次递归递减 nr 并在 r == 1 而不是 n == 1 时停止。

public static int permut(int n, int r){
if(r == 1) return n;
return n*permut(n-1, r-1);
}

因此,如果n = 10r = 3,则需要10!/(10-3)!10*9*8,程序将给出:

n = 10, r = 3, val = 10
n = 9, r = 2, val = 10*9
n = 8, r = 1, val = 10*9*8

关于java - 如何编写接受 2 个整数的递归排列方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23554535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com