【最全】阶乘算法!(python和C语言)

简介: 【最全】阶乘算法!(python和C语言)

阶乘的计算



叁岁学编程:用最简单的大白话理解编程,欢迎大家关注,留言,提问,希望和大家一起提升!


阶乘定义:


阶乘指从1乘以2乘以3乘以4一直乘到所要求的数。例如所要求的数是4,则阶乘式是1×2×3×4,得到的积是24。
 24就是4的阶乘。
设要求n的阶乘算式就是1*2*3*…*n的值


解析


阶乘的计算:
可以通过for循环一个一个的乘上去
可以创建函数再通过递乘的方式
可以创建函数用递归的方式计算


方法一:for循环计算


#阶乘计算
a =int( input('输入要计算的阶乘数:') )
b = 1
for i in range(1,a+1):
    b *= i
print('%d的阶乘的结果为%d'%(a,b))
#结果为:
输入要计算的阶乘数:5
5的结果为120 


解释:

a=输入的值(int()强制转换输入的字符串为整数)

设置b的初始值1(因为是乘法所有不能够为0)

设置for循环 从1开始到a结束(range()前闭后开所以要加一)

b的值叠乘

最后输出。


方法二:定义for循环的函数计算


def factrial(n):  #定义一个函数factial()
    result = n
    for i in range(1,n):
        result *= i
    return result
number = int(input("请输入要计算的值")) #输入一个值
result = factrial(number)
print('%d的阶乘的值为%d'%(number,result))
#结果
请输入要计算的值5
5的阶乘的值为120


方法三:定义递归函数计算


def factrial(n):  #定义函数
    if n <= 0:
        print("输出错误,请重新输入!")
    elif n == 1:
        return 1
    else:
         return  n * factrial(n-1)  #递归输出
number = int(input("请输入要计算的值"))
result = factrial(number)
print('%d的阶乘的值为%d'%(number,result))
#结果
请输入要计算的值5
5的阶乘的值为120


小知识:


阶乘还可以用!来表达  如:5的阶乘为 5!
5! =  120


C语言代码


方法一:for函数


#include <stdio.h>
int main()
{
    int i,n;
    double sum=1;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        sum=sum*i;
    printf("%d!=%lf",n,sum);
    printf("\n");
    return 0;
}


方法二:递归函数


#include<stdio.h>
long fac(int n){  //定义fac函数 
  long f;
  printf("n=%d\t",n);  //输出当前n的值(大->小) 
  if(n<0){
    printf("\nn<0,数据错误!");  //判断是否小于0 
    f=0;   //赋值为0 
  }
  else if(n==0)f=1;  //最后停止的标志 
  else f=fac(n-1)*n;  //数据没问题调用自己继续执行 
  printf("\n 返回:n=%d\tf=%d",n,f); //当调用到n==0后 开始执行 
  return f;
} 
main(){
  int n;
  long y;
  printf("需要输出的轮数:");
  scanf("%d",&n);
  y=fac(n);  //调用fac函数 
  if(y!=0){  //y!=0就输出 
    printf("\n%d!=%ld\n",n,y);
  } 
}


20210428005738959.png


总结:


阶乘的计算方法很多,种类很多,总体上不难,有问题欢迎大家留言提问,大家一起探讨!

目录
相关文章
|
算法 搜索推荐 JavaScript
基于python智能推荐算法的全屋定制系统
本研究聚焦基于智能推荐算法的全屋定制平台网站设计,旨在解决消费者在个性化定制中面临的选择难题。通过整合Django、Vue、Python与MySQL等技术,构建集家装设计、材料推荐、家具搭配于一体的一站式智能服务平台,提升用户体验与行业数字化水平。
|
存储 监控 算法
监控电脑屏幕的帧数据检索 Python 语言算法
针对监控电脑屏幕场景,本文提出基于哈希表的帧数据高效检索方案。利用时间戳作键,实现O(1)级查询与去重,结合链式地址法支持多条件检索,并通过Python实现插入、查询、删除操作。测试表明,相较传统列表,检索速度提升80%以上,存储减少15%,具备高实时性与可扩展性,适用于大规模屏幕监控系统。
337 5
|
存储 算法 调度
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
587 26
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
492 0
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)
725 0
|
机器学习/深度学习 编解码 算法
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
846 4
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
1310 4
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于深度优先搜索(Depth-First-Search,DFS)算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于深度优先搜索(Depth-First-Search,DFS)算法的机器人路径规划(Python代码实现)
525 3
|
算法 机器人 定位技术
【机器人路径规划】基于流场寻路算法(Flow Field Pathfinding)的机器人路径规划(Python代码实现)
【机器人路径规划】基于流场寻路算法(Flow Field Pathfinding)的机器人路径规划(Python代码实现)
650 4
机器学习/深度学习 算法 自动驾驶
1713 0

热门文章

最新文章

推荐镜像

更多