lerrorgk 2017-08-11 02:07 采纳率: 25%
浏览 1337
已采纳

这个计算阶乘的递归中,如果n=1,那么n - 1=0,那结果不就是0了吗

long rfact(int n)
{
      long ans;

      if (n > 0)
            ans = n * rfact(n - 1);
      else
            ans = 1;

      return ans;
 }
  • 写回答

8条回答 默认 最新

  • Rattenking Python领域优质创作者 2017-08-11 02:18
    关注

    当 n = 1 的时候 ans = 1* ans(0) ;
    ans(0) 的执行结果就是返回一个 ans = 1;
    所以表达式ans = 1* ans(0) 的结果为ans = 1 * 1 = 1;
    最终n = 1时返回的结果是 ans = 1;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考