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;
}
相关推荐
Sylvia-girl1 分钟前
Java之日志框架
java·开发语言
じ☆冷颜〃4 分钟前
交换代数的解析延拓及在CS的应用
c语言·数据结构·笔记·线性代数·密码学
永远都不秃头的程序员(互关)9 分钟前
【K-Means深度探索(三)】告别“初始陷阱”:K-Means++优化质心初始化全解析!
算法·机器学习·kmeans
oioihoii10 分钟前
QT跨平台一次编写,处处编译
开发语言·qt
edisao11 分钟前
四。SpaceX、网络化与未来的跨越:低成本、高频次的真正威胁
大数据·开发语言·人工智能·科技·php
程序员-King.12 分钟前
day136—快慢指针—重排链表(LeetCode-143)
算法·leetcode·链表·快慢指针
万行12 分钟前
差速两轮机器人位移与航向角增量计算
人工智能·python·算法·机器人
qq_3363139312 分钟前
java基础-多线程练习
java·开发语言·算法
wjs202413 分钟前
《jEasyUI 树形网格添加分页》
开发语言
我是一只小青蛙88813 分钟前
C++核心过渡:类与对象精讲
开发语言·c++