C语言求n的阶乘(n!)

  • Post author:
  • Post category:其他


从键盘输入一个数,求出这个数的阶乘,即 n!。

算法思想

首先要清楚阶乘定义,所谓 n 的阶乘,就是从 1 开始乘以比前一个数大 1 的数,一直乘到 n,用公式表示就是:1×2×3×4×…×(n-2)×(n-1)×n=n!

具体的操作:利用循环解决问题,设循环变量为 i,初值为 1,i 从 1 变化到 n;依次让 i 与 sum 相乘,并将乘积赋给 sum。

① 定义变量 sum,并赋初值 1。

② i 自增 1。

③ 直到 i 超过 n。

程序代码


  1. #include

    <stdio.h>


  2. int

    main

    ()



  3. {


  4. int i

    ,n

    ;



  5. double sum

    =

    1

    ;




  6. scanf

    (

    “%d”

    ,&n

    );





  7. for

    (i

    =

    1

    ;i

    <=n

    ;i

    ++)







  8. sum

    =sum

    *i

    ;



  9. printf

    (

    “%d!=%lf”

    ,n

    ,sum

    );






  10. printf

    (



    \n



    );






  11. return

    0

    ;



  12. }

调试运行结果

输入 5,对应的阶乘输出情况如下所示;

5

5!=120.000000

输入20,对应的阶乘输出情况如下所示:

20

20!=2432902008176640000.000000

总结

① 由于阶乘一般较大,会超出整型甚至是长整型所能表示的范围,因此定义变量时就不能定义为整型,而应该考虑双精度数。

② 实训中定义了一个双精度型的变量,用来存放结果。因此在输出时应注意双精度数的输出格式。

转载于:https://www.cnblogs.com/Ph-one/p/10593299.html