关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
上个月关门了。
改进这个问题
我花了几分钟重新创建公式ncr=n/r(n-r)!查找数组中的组合数。到目前为止,我已经成功地实现了这个公式,但我正在寻找使用这样一个公式的替代方法。这是我的密码:
import java.util.Scanner;
public class Factorial {
public static void main(String[] args) {
System.out.println("Enter Num");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
long f = 1;
for(int i = 1; i <= num; ++i)
{
f *= i;
}
System.out.println("Factorial of " +num +" = " +f);
System.out.println("Enter r");
int r = sc.nextInt();
int bracket = num-r;
int f2 = 1;
int rf = 1;
for(int i = 1; i <= r; ++i)
{
rf *= i;
}
for(int i = 1; i <= bracket; ++i)
{
f2 *= i;
}
long ans = f/(rf*f2) ;
System.out.println(num+"C"+r +" = "+ans);
}
}
1条答案
按热度按时间x0fgdtte1#
改进公式的一个好方法是使用递归。可以使用此递归方法替换循环: