从键盘输入一个数,求出这个数的阶乘,即 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。
    
     程序代码
    
- 
        
 #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
 
 ;
 
 
 
- 
        
 }
 
     调试运行结果
    
输入 5,对应的阶乘输出情况如下所示;
     5
     
     5!=120.000000
    
输入20,对应的阶乘输出情况如下所示:
     20
     
     20!=2432902008176640000.000000
    
     总结
    
① 由于阶乘一般较大,会超出整型甚至是长整型所能表示的范围,因此定义变量时就不能定义为整型,而应该考虑双精度数。
② 实训中定义了一个双精度型的变量,用来存放结果。因此在输出时应注意双精度数的输出格式。
转载于:https://www.cnblogs.com/Ph-one/p/10593299.html
 
