c语言如何求一个数的阶乘

Python015

c语言如何求一个数的阶乘,第1张

n的阶乘就是从1到的累积,所以可以通过一个for循环,从1到n依次求积即可。

参考代码:

#include "stdio.h"

int main() {

int n,i,s=1

scanf("%d",&n)

for(i=1i<=ni++)//for循环求累积

s=s*i

printf("%d\n",s)

return 0

}

/*

运行结果:(例如求5的阶乘)

5

120

*/

扩展资料: 

return用法:

return返回一个数值的意思就是把return<表达式>后面表达式的值返回给调用他的函数。举个例子:

int sum(int i,int j)

{

return i+j

printf("这个语句不会被执行,因为该子函数执行到上面的return语句就无条件结束了")

}

main()

{

int a=10,b=11,c

c=sum(a,b)

printf("%d",c)

}

/*This program can calculate the factorial of (int n).*/

#include <stdio.h>

int factorial(int n)

{

return (n == 1)?n:factorial(n-1)*n//recursion.

}

int main(void)

{

int n,fac

printf("Please input the value of n:")//initialize n.

scanf("%d",&n)

fac = factorial(n)//variable fac is not necessary.

printf("The result is:%d\n",fac)     

return 0

}

阶乘拓展与再定义

一直以来,由于阶乘定义的不科学,导致以后的阶乘拓展以后存在一些理解上得困扰,和数理逻辑的不顺。

阶乘从正整数一直拓展到复数。传统的定义不明朗。所以必须科学再定义它的概念

真正严谨的阶乘定义应该为:对于数n,所有绝对值小于或等于n的同余数之积。称之为n的阶乘,即n!

对于复数应该是指所有模n小于或等于│n│的同余数之积。。。对于任意实数n的规范表达式为:

正数 n=m+x,m为其正数部,x为其小数部

负数n=-m-x,-m为其正数部,-x为其小数部

1、不是直接输入n!,需要一定的算法才可以实现。具体方法是,首先打开编辑器,准备好空白的C语言文件:

2、在编辑器中输入代码,这里所谓 n 的阶乘,就是从 1 开始乘以比前一个数大 1 的数,一直乘到 n。C语言中可利用循环解决,可以假设循环变量为 i,初值为 1,i 从 1 变化到 n;依次让 i 与 sum 相乘,并将乘积赋给 sum,最后输出sum的值就可以了:

3、在编辑器中运行程序,随意输入一个数,按下回车键,即可打印出阶乘的结果来: