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 传值调用 ...
最新文章
- The application server could not be contacted
- C++虚继承(一) --- vtordisp字段
- 在linux中500g怎么分区,500G的硬盘,怎么分区比较合理?
- 32 commons-lang包学习
- JavaScript函数式编程入门经典
- python Authentication plugin ‘caching_sha2_password‘ is not supp
- func_ext.php,fsockopen和pfsockopen函数替换
- CppUnit快速入门
- i2c通信的详细讲解_STM32Cube15 | 使用硬件I2C读写温湿度传感器(SHT30)
- 黑苹果无线网卡的另一种解决方案
- EnableViewState与EnableViewStateMac
- 宾夕法尼亚州立大学将领导 750 万美元的 GaN 辐射效应研究
- undefined reference to 问题汇总及解决方法
- 赛码网刷题python
- 南京ibm戴尔笔记本维修
- 机房收费系统问题集(2)——移动登陆界面+show出子窗体
- 日光山谷的秋天景色。
- 最新CCF会议|2022-2023顶会会议时间+投稿时间+官网链接(视觉+多媒体+数据挖掘+数据库+通用人工智能)
- linux 添加pv失败,linux上创建PV/VG/LV
- 计算机有没必要换硬盘,轻松更换电脑硬盘无需重装系统的方法介绍