递归面试题及详细答案.docxVIP

  • 2
  • 0
  • 约5.11千字
  • 约 7页
  • 2026-06-05 发布于河北
  • 举报

递归面试题及详细答案

面试题1:基础题(必问)——求n的阶乘

题目描述

编写一个递归函数,计算正整数n的阶乘(n!=n×(n-1)×(n-2)×...×1,规定0!=1)。要求:说明递归思路、写出代码、指出递归终止条件。

详细答案

1.递归核心思路

阶乘的递归本质是“把大问题拆解成和自身结构一致的小问题”:n的阶乘=n×(n-1)的阶乘,以此类推,直到拆解到最小可解问题(终止条件),再逐步回溯计算结果。

核心逻辑:f(n)=n*f(n-1),终止条件:n=0或n=1时,f(n)=1(因为0!和1!的结果都是1,这是递归的“出口”,避免无限递归)。

2.代码实现(Java为例,简洁无冗余)

java

publicclassFactorial{

//递归计算n的阶乘

publicstaticintfactorial(intn){

//递归终止条件:n=0或n=1,直接返回1

if(n==0||n==1){

return1;

}

//递归调用:n!=n*(n-1)!

returnn*factorial(n-1);

}

//测试示

文档评论(0)

1亿VIP精品文档

相关文档