Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为阶乘编写一个方法_Java - Fatal编程技术网

Java 为阶乘编写一个方法

Java 为阶乘编写一个方法,java,Java,我正在学习课本中的代码。它使用组合法和阶乘法来计算给定n和k的可能结果。我的问题是阶乘方法,特别是for循环中的内容 我了解该程序的所有其他内容,但不了解代码In是该方法的一个参数:因为该方法被声明为int factorialint n,所以您可以调用它,例如factorial5,以将局部变量n设置为5。从形式上讲,n是参数,5是参数,尽管人们通常不会费心区分这两个术语。如果仔细观察,您会发现在循环中,i取1到n的值,因此在i=n中,循环终止。以这种形式创建的循环是为了确保factorial0=

我正在学习课本中的代码。它使用组合法和阶乘法来计算给定n和k的可能结果。我的问题是阶乘方法,特别是for循环中的内容


我了解该程序的所有其他内容,但不了解代码In是该方法的一个参数:因为该方法被声明为int factorialint n,所以您可以调用它,例如factorial5,以将局部变量n设置为5。从形式上讲,n是参数,5是参数,尽管人们通常不会费心区分这两个术语。

如果仔细观察,您会发现在循环中,i取1到n的值,因此在i=n中,循环终止。以这种形式创建的循环是为了确保factorial0=1。但是,您可以以递归方式重新设计此函数

你需要我做一点数学。通常,在处理数学表达式时,经常使用数学约定。n通常是指该方法应参考的某个上限值

本质上,阶乘的函数定义如下

factorial(n) = {  1 if n = 0, n*factorial(n-1) otherwise.

循环包含最终值n,因此您可以得到函数的完整表达式。如果不包含,您的答案每次都会偏离n的因数。

非常有趣。谢谢在方法private int combinationsint n,int k中,n和k的值来自用户在程序开始时的提示中输入的数字。我的理解正确吗?@JessicaM:是的,情况恰好如此;但您也可以只编写组合5、3或组合sn*n、k或其他任何内容。组合方法中名为n和k的变量与run方法中名为n和k的变量完全独立。显然,从程序员的角度来看,这些变量名匹配有很好的理由,但从编译器的角度来看,这并不重要。如果每个方法的值彼此独立,那么组合方法如何知道n=2和k=2,而不是相反?很抱歉尝试在平板电脑上键入。例如,我试图键入n=5和k=2@JessicaM.:因为run调用组合n,k,这意味着run将其n变量作为第一个参数传入,该参数对应于组合的第一个参数,也称为n,其k变量作为第二个参数传入,该参数对应于组合的第二个参数,也叫k。谢谢你真的很感激不客气。你也可以,你知道。。。
factorial(n) = {  1 if n = 0, n*factorial(n-1) otherwise.