【最全】阶乘算法!(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"
longfact(int n)   
{  
   long s;     
   if(n<=1)          
   s=1;     
   else            
   s=n*fact(n-1);     
   return s;   
}     
  voidmain()   
  {
          int num;    
          scanf("%d",&num);     
          printf("%d!=%ld\n",num,fact(num));       
          getch();  
   }

总结:

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

发布了6 篇原创文章 · 获赞 12 · 访问量 1136

猜你喜欢

转载自blog.csdn.net/weixin_45623093/article/details/104713879