首页 > 其他分享 >C语言-求一个数的阶乘(递归法)

C语言-求一个数的阶乘(递归法)

时间:2022-11-26 19:34:18浏览次数:43  
标签:set return 递归 int ret C语言 阶乘 Fac

1.函数调用

#include<stdio.h>
int Fac(int n)
{
int i, ret = 1;
for (i = 1; i <= n; i++)
{
ret *= i;
}
return ret;
}

int main(void)
{
int n = 0,set;
scanf("%d", &n);
set = Fac(n);
printf("%d", set);
}

2.递归法

        在调用一个函数过程中,又出现直接或间接调用该函数本身,称之为函数的递归调用。

#include<stdio.h>
int Fac(int n)
{
if (n <= 1)
{
return 1;
}
else{
return n*Fac(n - 1);
}
}
int main(void)
{
int n = 0,set;
scanf("%d", &n);
set = Fac(n);
printf("%d", set);
}

通过使用递归法后只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。

标签:set,return,递归,int,ret,C语言,阶乘,Fac
From: https://blog.51cto.com/u_15892596/5889125

相关文章

  • c 递归,递推法
     #include<stdio.h>//递归longlongfunc(intn){if(n==1||n==2)return1;returnfunc(n-1)+func(n-2);}//数组longlongnum[100];intmain(){......
  • C语言随笔5
    分支与循环(一)语句:由一个分号隔开的就是一个语句分支语句:if    switch/breakif 语法结构: 1.单分支语句   if(表达式)       语句; 2.......
  • 介绍C语言中的关键字 typedef 的用法
    概述typedef作用是为一种数据类型定义一个新的名字(包括数据类型int、char等+自定义的数据类型struct等)。typedef作为一个存储类的关键字,不能与auto、extern、static、reg......
  • C语言实现最简单的2048存档读档功能(获取当前路径和文件IO)
    简介最近大一的学弟开始布置C语言的大作业了,于是在此提供一种比较简单的2048存档读档功能的实现1获取当前目录及存档文件记得自己大一的时候在这里研究了很久,在这里提......
  • C语言学习笔记---volatile关键字
    一段代码想要最终被计算机执行,首先需要被翻译成机器可识别和执行的指令,代码编译的过程往往包含几个步骤:代码->词法语法分析->语义分析->中间代码生成->目标代码生......
  • 浅谈 CRTP:奇异递归模板模式
    浅谈CRTP:奇异递归模板模式前言建议先看一遍文末的参考资料!建议先看一遍文末的参考资料!建议先看一遍文末的参考资料!思维导图一、CRTP是什么CRTP全称:​​CuriouslyRec......
  • 【大一C语言项目】Cjson的认识与实现(一)
    【大一C语言项目】Cjson的认识与实现(一)一、初识json参考网站​​​菜鸟教程:JSON​​​​JSON介绍​​​​JSON在线解析​​JSON是什么JSON指的是JavaScript对象表示法(Jav......
  • 【大一C语言项目】Cjson的认识与实现(二)
    【大一C语言项目】Cjson的认识与实现(二)参考资料:​​​哔哩哔哩CJson开源库使用及注意事项​​​​CJson开源项目下载地址​​​​cJSON源码刨析​​一、使用Cjson库下载CJSO......
  • C语言基础
    (1)栈(stack):由编译器进行管理,自动分配和释放,存放函数调用过程中的各种参数、局部变量、返回值以及函数返回地址。操作方式类似数据结构中的栈。(2)堆(heap):用于程序动态申请分配......
  • [Object-C语言随笔之一]Mac os 下搭建iOS开发环境
    ​​ 李华明Himi ​​​原创,转载务必在明显处注明 从这一章开始,Himi将一步一步的带大家走进Iphone4的开发,当然开发语言则不再是Java,而是Objective-C,简单来说是C的变种......