【最全】阶乘算法!(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


总结:


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

目录
相关文章
|
1天前
|
算法 数据可视化 Python
Python用MCMC马尔科夫链蒙特卡洛、拒绝抽样和Metropolis-Hastings采样算法
Python用MCMC马尔科夫链蒙特卡洛、拒绝抽样和Metropolis-Hastings采样算法
12 6
|
2天前
|
机器学习/深度学习 算法 搜索推荐
Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
30 12
|
8天前
|
算法 数据可视化 Python
Python贝叶斯推断Metropolis-Hastings(M-H)MCMC采样算法的实现
Python贝叶斯推断Metropolis-Hastings(M-H)MCMC采样算法的实现
12 0
|
8天前
|
数据可视化 算法 数据挖掘
PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较
PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较
|
9天前
|
算法 数据可视化 Python
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
13 0
|
9天前
|
机器学习/深度学习 算法 Python
使用Python实现集成学习算法:Bagging与Boosting
使用Python实现集成学习算法:Bagging与Boosting
18 0
|
10天前
|
缓存 算法 Python
python算法对音频信号处理Sonification :Gauss-Seidel迭代算法
python算法对音频信号处理Sonification :Gauss-Seidel迭代算法
|
13天前
|
算法 数据可视化 数据挖掘
使用Python实现DBSCAN聚类算法
使用Python实现DBSCAN聚类算法
152 2
|
14天前
|
存储 算法 安全
Python加密算法有哪些?有什么作用?
这些加密算法的作用在于保护敏感数据的隐私和完整性。它们可以用于数据传输、存储、身份验证和数字签名等领域。通过加密,可以确保数据在传输和存储过程中不被未经授权的人访问或篡改。同时,数字签名可以用于验证数据的来源和完整性,防止数据被篡改或冒充。不同的加密算法在不同的应用场景中起到不同的作用,选择合适的算法取决于安全需求和性能要求。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
8 0
|
15天前
|
算法 数据可视化 数据挖掘
使用Python实现K均值聚类算法
使用Python实现K均值聚类算法
18 1