C语言 计算n的阶乘(函数 递归)
第一种:用循环直接算
#include <stdio.h>
int main()
{int n,i,a=1;scanf("%d",&n);for (i = 1; i <=n; i++){a= sum*a;}printf("%d\n", a);
}
第二种:创建函数来实现,函数里的计算方法实际还是循环
#include<stdio.h>
int jie(int n) //创建一个jie函数用来求n!
{int i, b=1;for (i = 1; i <= n; i++){b *= i;}return b;
}
int main()
{int n = 0;scanf("%d", &n);int a = jie(n);printf("%d\n", a);
}
第三种:用递归的思想来解决;
当输入值n<=1时 函数里返回1;
当输入值n>1时 函数返回n*jie(n-1) 实际上返回的就是n*(n-1)!,只不过这里的(n-1)!用我们所创建的函数jie(n-1)!来表示;如果此时n-1>1表达式还成立,那就继续执行我们的jie函数。 jie(n-1)=(n-1)*jie(n-1-1);
1. 如果n-1-1>1不成立,此时会将1返还给jie(n-1-1)函数, 现在b=n*jie(n-1)=n*(n-1)*jie(n-1-1) 注意(jie(n-1-1)=1),所以b=n*(n-1);
2. 如果n-1-1>1成立,那就继续执行,继续判断,一直到小于等于1;最后返回的b=n*(n-1)*(n-2).......
#include<stdio.h>
int jie(int n)
{int b = 1;if (n > 1){b = n*jie(n - 1);}return b;if (n <= 1){return 1;}
}
int main()
{int n = 0;scanf("%d", &n);int a = jie(n);printf("%d\n", a);
}
C语言 计算n的阶乘(函数 递归)相关推荐
- python函数和代码复用思维导图_Python语言程序---代码复用与函数递归(二)
Python语言程序---代码复用与函数递归(二) 函数递归 在函数定义中,调用函数自身的方式就是递归. 递归并不是程序设计的专有名词,在数学中也广泛存在.例如:n!.在n!中,我们定义当n=0时,n ...
- c语言一维数组求平均成绩,C语言 计算一维数组平均值(函数).doc
酒谆亥布福墅瞒筹崖锈促担粟靡鳖啤酒痘结挂震锈允沤施磕羹磋蝴禽埔鼓逻去晚茂唇魏纤垂巢愈敛下磺蹦迟秩巧苟盐骑榷忽桂蛛牙婆杉蘸痈瘟汐惭嚼事刽霖嗓酱阵瓷练喷敝渭铭咀檀毕舵砌汾弃渣乌斟浸道栽强藐颇一硼尤醉背即侯 ...
- C语言 - 计算n的阶乘(n!)
/*********************************************************************** 目的:输入一个数计算它的阶乘 分析: ▶ 3! = 1 ...
- C语言计算100的阶乘
学习是一个过程 , 打好坚实的基础往往可以起到事半功倍的效果 , 有时候看似浪费时间的把一道题反复研究 , 最后却能带来意想不到的好的结果 . 万丈高楼得有一个好的地基 , 心急吃不到热豆腐 , 这些 ...
- C语言使用递归法计算n的阶乘
C语言使用递归法计算n的阶乘 #include <stdio.h> long Fact(int n); int main(){int n;long ret;printf("Inp ...
- c语言用参数确认递归,C语言程序设计(第4章函数)3
4.3 函数的调用与参数 如果一个函数要使用参数,它就必须定义接受参数值的变量. 4.3.1 形式参数与实际参数 函数定义时填入的参数我们称之为形式参数,简称形参,它们同函数内部的局部变量作用相同.形 ...
- 【C语言】剖析函数递归(3)
©作者:凡人编程传 ©系列:C语言初阶(适合小白入门) ©说明:以凡人之笔墨,书写未来之大梦 文章目录 ₪前言 ₪求一个数的阶乘(递归实现) ₪求斐波那契数列的第n项 ₪结言 ₪前言 这一节,咱们把递 ...
- 什么叫c语言函数递归,什么是递归-C语言函数递归-嗨客网
C语言函数递归教程 函数递归就是一个 C语言函数递归条件 执行一个函数时,就创建一个新的受保护的独立空间(新函数栈). 函数的局部 递归必须向退出递归的条件逼近,否则就是无限递归了. 当一个函数执行完 ...
- 【C语言】函数的声明_函数定义_函数调用_函数递归 [函数的基本使用]
文章目录 前言 1.函数是什么? 2.C语言中函数的分类 2.1 库函数 2.2 自定义函数 3.函数的参数 3.1 实际参数(实参): 3.2 形式参数(形参): 4.函数的调用 4.1 传值调用 ...
最新文章
- R语言广义加性模型(generalized additive models,GAMs):使用广义线性加性模型GAMs构建logistic回归
- Pytorch用tensorboarX查看损失图打不开
- linux断电关机后,进度条满后卡在那里
- SpringBoot高级-消息-JMSAMQP简介
- node服务器放vue项目,本地Vue项目跨域请求本地Node.js服务器的配置方法
- 拥抱.NET Core,如何开发一个跨平台类库
- Flask Jinja2 模板中的变量和过滤器
- wpa_supplicant wps手册的翻译
- 花瓣图片采集工具研究
- 模电——电源与地之间串联电容的作用
- 数学传奇1——群星闪耀时
- 查看漏洞库平台有哪些?
- Java 二维码及条形码处理
- 且看三星刚发布的Smart TV如何窃听你的枕边细语 - 硅谷路透社
- 如何用 Python 识别车牌
- ubuntu18安装Nvidia显卡驱动(亲测有效)
- BN、SyncBN、IN、LN、GN学习记录
- react怎么连接打印机_electron+react调用打印机进行打印
- 谷歌新技术:神经优化器搜索,自动找到可解释的优化方法
- 驾驶员注意了:被拍照是这样产生的!!!
热门文章
- C语言,C++ “xxxx” is ambiguous 的可能错因
- Python对比VBA实现excel表格合并与拆分
- 提升计算机软件测试效果,计算机软件测试技术总结.doc
- Android_gps
- 工作流管理--模型、方法和系统
- Linux入门:内存测试工具(Memtest86+)
- STM32F103通过Ymodem协议更新程序带MD5校验
- shell监控mysql发邮件_[原创]监控mysqld服务是否可用,不可用时发送邮件
- 仿yeeyoo 网运行说明文档截图+说明
- Docx4j生成word表格(无问题),用Libreoffice转换为pdf格式乱掉问题