【发布时间】:2015-04-19 23:58:48
【问题描述】:
所以这里有我从教科书中复制的代码。我不完全理解 factorial(k) 是如何得到它的数字的,因为只有 factorial(n) 有一个计算它的值的方法。
public void run(){
int n = readInt("Enter the number of objects, n, in the set: ");
int k = readInt("Enter numberto be chose,k, :");
println("C("+ n + ", " + k + ") = " + combinations(n, k));
}
private int combinations(int n, int k){
return factorial(n) / (factorial(k) * factorial(n-k));
}
private int factorial(int n){
int result = 1;
for(int i = 1; i <= n; i++){
result*= i;
}
return result;
}
}
【问题讨论】:
-
什么...?他们称它们为相同的方法,只是输入不同。我对你的困惑感到困惑。编辑:我想我看到了你的困惑。在
combinations中传入的n与作为factorial参数的n相比,是一个完全 不同的变量。请阅读范围! -
观察形参和实参之间的区别 - 前者只是一个占位符,具体词汇化在调用站点不起作用!
-
如果你调用 factorial(3) 调用会去哪里?阶乘(5)去哪儿了?阶乘(n)?想想吧。
-
@collapsar。神圣词汇化蝙蝠侠你刚才说什么?
-
@AndyBrown 无论是调用
factorial(n)还是factorial(k),参数总是映射到private int factorial(int n)中的n。措辞可能有点过于复杂...... ;-)
标签: java return computer-science