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;
}
相关推荐
小诸葛的博客29 分钟前
go语言实现进度条
开发语言·后端·golang
CodeCipher29 分钟前
Java基础复习之接口
java·开发语言
椎名ひる1 小时前
2140、解决智力问题
数据结构·算法·leetcode
武子康1 小时前
Java-51 深入浅出 Tomcat 手写 Tomcat 类加载机制 双亲委派机制 生命周期 插件化
java·开发语言·spring boot·后端·spring·tomcat·springcloud
爬虫程序猿1 小时前
如何利用 Java 爬虫获得微店商品详情:实战指南
java·开发语言·爬虫
JovaZou2 小时前
[Python学习日记-92] 并发编程之多线程 —— 守护线程
开发语言·python·学习
火鸟22 小时前
Rust 通用代码生成器:莲花,红莲尝鲜版三十六,蛋糕商城哑数据模式
开发语言·rust·通用代码生成器·蛋糕商城·莲花·红莲·哑数据模式
虾球xz2 小时前
CppCon 2017 学习:Meta
开发语言·c++·学习
25405465203 小时前
710SJBH基于Apriori算法的学籍课程成绩关联规则挖掘研究
大数据·算法·spark
hao_wujing3 小时前
CNN工作原理和架构
算法