C语言---计算n的阶乘

阶乘的概念:一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,且0的阶乘为1,自然数n的阶乘写作n!

任何大于等于1 的自然数n 阶乘表示方法:

n!=1×2×3×...×(n-1)×n 或 n!=n×(n-1)!

0!=1

1! = 1

2! = 2 * 1 = 2

3! = 3 * 2 * 1 = 6

...

n! = n * (n-1) *... * 2 * 1

第一种 :用递归的方法计算(函数调自己

cpp 复制代码
//递归
int fun(int n)
{
	if (n > 1)//限制条件
	{
		return n * fun(n - 1);
	}
	else//0 ,1的阶乘
		return 1;
}
int main()
{
	int n = 0;
	scanf("%d", &n);
	int a=fun(n);
	printf("%d ", a);
	return 0;
}

第二种:用非递归的方法计算

cpp 复制代码
int main()
{
	int n = 0;
	int sum = 1;
	int i = 1;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		sum *= i;//sum=sum*i
	}
	printf("%d\n", sum);
	return 0;
}
相关推荐
艾莉丝努力练剑4 分钟前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
YMWM_5 分钟前
python3继承使用
开发语言·python
Once_day20 分钟前
C++之《程序员自我修养》读书总结(1)
c语言·开发语言·c++·程序员自我修养
偷吃的耗子35 分钟前
【CNN算法理解】:CNN平移不变性详解:数学原理与实例
人工智能·算法·cnn
喜欢喝果茶.39 分钟前
QOverload<参数列表>::of(&函数名)信号槽
开发语言·qt
亓才孓40 分钟前
[Class类的应用]反射的理解
开发语言·python
努力学编程呀(๑•ี_เ•ี๑)40 分钟前
【在 IntelliJ IDEA 中切换项目 JDK 版本】
java·开发语言·intellij-idea
坚果派·白晓明42 分钟前
在鸿蒙设备上快速验证由lycium工具快速交叉编译的C/C++三方库
c语言·c++·harmonyos·鸿蒙·编程语言·openharmony·三方库
island13141 小时前
CANN GE(图引擎)深度解析:计算图优化管线、内存静态规划与异构任务的 Stream 调度机制
开发语言·人工智能·深度学习·神经网络