首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每天一道c语言编程题,第十九题,利用递归方法求n的阶乘

利用递归方法求n的阶乘

#include

int factorial(int n) {

  if (n == 1) {  // 基本情况

      return 1;

  } else {  // 递归情况

      return n * factorial(n-1);

  }

}

int main() {

  int n;

  printf("请输入一个非负整数:");

  scanf("%d", &n);

  printf("%d! = %d\n", n, factorial(n));

  return 0;

}

在上面的代码中,factorial()是一个递归函数。当n等于1时,函数返回1,这是递归的基本情况。当n大于1时,函数返回n乘以factorial(n-1)的结果,这是递归情况。因此,当我们调用factorial(n)时,它会递归地调用factorial(n-1)直到n等于1,然后返回1,开始从递归中返回并计算结果。

递归是一种编程技术,可以让函数通过调用自身来解决复杂的问题。在递归函数中,我们需要定义基本情况和递归情况。基本情况是函数可以直接返回结果的情况,而递归情况是函数需要递归调用自身来解决问题的情况。当我们使用递归时,我们需要小心不要陷入无限递归的情况,这可能导致程序崩溃或栈溢出。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230311A01LR200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券