C语言求n的阶乘(n!)
从键盘输入一个数,求出这个数的阶乘,即 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;
}</stdio.h>
调试运行结果
输入 5,对应的阶乘输出情况如下所示;
5
5!=120.000000
输入20,对应的阶乘输出情况如下所示:
20
20!=2432902008176640000.000000
总结
① 由于阶乘一般较大,会超出整型甚至是长整型所能表示的范围,因此定义变量时就不能定义为整型,而应该考虑双精度数。
② 实训中定义了一个双精度型的变量,用来存放结果。因此在输出时应注意双精度数的输出格式。
- C语言分块查找算法,索引顺序查找算法
- 例如,采用分块查找法在有序表 11、12、18、28、39、56、69、89、96、122、135、146、156、256、298 中查找关键字为 96 的元素。
- 03-05 关注:0
- C语言二分查找算法,折半查找算法
- 本实例采用二分查找法查找特定关键字的元素。要求用户输入数组长度,也就是有序表的数据长度,并输入数组元素和査找的关键字。
- 03-05 关注:0
- C语言归并排序算法
- 用归并排序法对一组数据由小到大进行排序,数据分别为 695、458、362、789、12、 15、163、23、2、986。
- 03-05 关注:0
- C语言选择排序算法
- 用选择排序法对一组数据由小到大进行排序,数据分别为 526、36、2、369、56、45、78、92、125、52。
- 03-05 关注:0
- C语言快速排序算法
- 用快速排序法对一组数据由小到大进行排序,数据分别为 99、45、12、36、69、22、62、 796、4、696。
- 03-05 关注:0
- C语言直接插入排序算法
- 插入排序是把一个记录插入到已排序的有序序列中,使整个序列在插入该记录后仍然有序。插入排序中较简单的种方法是直接插入排序
- 03-03 关注:3