c语言如何求N的阶乘

c语言如何求N的阶乘,第1张

法/步骤

第一步、编程的第一步就是写头文件,对于初学者来说,只写一个头文件就可以了,即#include<stdioh>

第二步、就是定义我们的变量,我们需要定义一个n,用来求他的阶乘,sum用来保存结果,i用来循环

第三步、就是把sum初始化,为1千万不要为0,保证后面的结果不出问题。

第四步、就是输入一个n,用来求n的阶乘,别忘了在前面提示一下。

第五步、就是利用for循环来求阶乘。

第六步、就是调用printf(:);函数来输出阶乘结果。

定义

n!=1×2×3xn

n!=X×(X-1)×(X-2)×1

1751年,欧拉以大写字母M表示m阶乘 M=1x2x3xm

1799年,鲁非尼在他出版的方程论著述中,则以小写字母π表示m阶乘。而在1813年,高斯则以Π(n)来表示n阶乘。而用来表示n阶乘的方法起源于英国,但仍未能确定始创人是谁。直至1827年,由于雅莱特的建议而得到流行,现在有时也会以这个符号作为阶乘符号。

当n较大时,直接计算n!变得不可能,这时可通过斯特灵(Stirling)公式计算近似算或取得大小范围。

#include <stdioh>

// 声明递归函数 factorial,用于计算 n 的阶乘

int factorial(int n);

int main() {

int n;

printf("请输入一个非负整数 n: ");

scanf("%d", &n);

if (n < 0) {

printf("输入错误!\n");

return -1;

}

printf("%d 的阶乘为 %d\n", n, factorial(n));

return 0;

}

// 定义递归函数 factorial,用于计算 n 的阶乘

int factorial(int n) {

if (n == 0 || n == 1) {   // 边界条件

return 1;

} else {

return n factorial(n-1);   // 递归调用

}

}

#include <stdioh>

#define MAX 20

int main(void)

{

    int i,n;

    int repeat, ri;

    double sum[MAX] = {0};

    double fact(int n);

    scanf("%d", &repeat);

    for(ri = 1; ri <= repeat; ri++){

        scanf("%d", &n);

for(i=0; i<=n; i++)

sum[ri - 1] += fact(i);

       // printf("sum = %0f\n", sum);

    }

for(i=0; i<repeat; i++) {

printf("sum = %0f\n", sum[i]);

}

return 0;

}

double fact(int n) {

if(n == 0)

return 1;

return n  fact(n - 1);

}

f是fac()函数内部的静态变量,那么,f只在第一次进入fac()函数时才执行其初始化 *** 作,以后都会跳过初始化 *** 作。所以第一次执行fac(1)函数时,f初始化为1,并乘以1,f仍为1;第二次执行fac(2)时,跳过初始化 *** 作,f=f2,f为2;第三次执行fac(3)时,跳过初始化 *** 作,f=f3,f为6;第四次执行fac(4)时,跳过初始化 *** 作,f=f4,f为24;以此类推。

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

#include <stdioh>

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;

}

扩展资料:

阶乘是定义在自然数范围里的(大多科学计算器只能计算 0~69 的阶乘),小数科学计算器没有阶乘功能,如 05!,065!,0777!都是错误的。但是,有时候我们会将Gamma 函数定义为非整数的阶乘,因为当 x 是正整数 n 的时候,Gamma 函数的值是 n-1 的阶乘。

-阶乘

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12153719.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存