我们知道factorial可以写成(如果使用C ++)
import org.apache.commons.lang3.text.WordUtils;
WordUtils.capitalizeFully(input);
如果写为
int factorial(int number)
{
if (number == 0)
return 1;
else
return (number * factorial(number - 1));
}
看到else括号中没有返回,那么无论数字是多少,结果总是1,为什么会这样?
非常感谢。
答案 0 :(得分:-1)
为了找出任意数字的因子,我们所做的是将数字乘以少于1的增量直到达到1
例如 要找出n的阶乘:我们这样做 n *(n-1)*(n-2) ... (n-m)直到(n-m)= 1
考虑你的代码并尝试编写代码并进行干运行。
在第一次通话时,返回是5 * fac(5-1)..结果一直持续到它
5 * 4 * 3 * 2 *事实(1)其中fac(1)返回1可以将所有内容追溯到之前的呼叫。
简短的回答是返回1作为停止点的基本条件。