计算 n的阶乘。要实现这个阶乘的值并不难,只需要运用到for循环依次相乘即可,但要注意for循环i的初始值一定是从1开始到n结束。

#include<stdio.h>
int main()
{int i,n;int ret = 1;//用于存放阶乘的值scanf("%d", &n);for (i = 1; i <= n; i++)//注意这里i的初始值和结束值{ret *= i;}printf("%d", ret);}

如果要实现阶乘相加,我们只需要定义一个变量,在每次阶乘以后把阶乘的值加到这个变量里面即可,我们用sum来存储这个值,将上面的代码进行改进。

#include<stdio.h>
int main()
{int i,n;int j;int sum = 0;int ret = 1;//用于存放阶乘的值scanf("%d", &n);for (i = 1; i <= n; i++){ret = 1;//每次阶乘ret必须都是1for (j = 1; j <= i; j++){ret *= j;//用来求1-n的阶乘}sum += ret;//将1-n的阶乘与sum相加}printf("%d",sum);}

在这里通过控制两个for循环来实现求不同数的阶乘,i从1-n开始,然后j的循环来求i的阶乘,通过这种方式来求出1-n阶乘的和。这里有一个点必须注意:再求1-n每个阶乘的时ret必须要重置为1,否则ret就会以上一个数的阶乘的值来继续求下一个数的阶乘,那么结果肯定是错误的。

但是这个方法很明显不太行,因为它的for循环实在太多了,求每个阶乘都要从1开始乘。实际上,我们求完一个数的阶乘以后,只需要在这个数的阶乘上乘上下一个数即可得到下一个数的值,我们将代码进行改进:

#include<stdio.h>
int main()
{int i,n;int sum = 0;int ret = 1;//用于存放阶乘的值scanf("%d", &n);for (i = 1; i <= n; i++){ret *= i;sum += ret;//将1-n的阶乘与sum相加}printf("%d",sum);}

改进后的代码减少了重复计算从而减少了代码量,提高了运行效率。

C语言计算阶乘及阶乘的和相关推荐

  1. C语言 - 计算n的阶乘(n!)

    /*********************************************************************** 目的:输入一个数计算它的阶乘 分析: ▶ 3! = 1 ...

  2. C语言计算100的阶乘

    学习是一个过程 , 打好坚实的基础往往可以起到事半功倍的效果 , 有时候看似浪费时间的把一道题反复研究 , 最后却能带来意想不到的好的结果 . 万丈高楼得有一个好的地基 , 心急吃不到热豆腐 , 这些 ...

  3. C语言 计算n的阶乘(函数 递归)

    第一种:用循环直接算 #include <stdio.h> int main() {int n,i,a=1;scanf("%d",&n);for (i = 1; ...

  4. C语言:计算阶乘和阶乘的和

    从键盘输入一个数,用C语言计算该数的阶乘 #include <stdio.h> #include<stdlib.h> int main() {int i,sum = 0, p ...

  5. c语言计算阶乘的倒数和,for循环计算某个数的阶乘、阶乘和及其倒数的阶乘和...

    //4的阶乘 int jc = 4; //定义一个变量用来代表要计算的数值 long jd =1; //定义最终输出的阶乘 for(int i = 1; i <= jc;i++) //定义循环加 ...

  6. C语言入门——计算n的阶乘

    目录 一.问题 二.问题分析 三.代码实现 四.运行结果 一.问题 通过c语言编程计算n的阶乘. 二.问题分析 1.首先明确n的阶乘在数学中怎么算:1*2*--*(n-1)*n = n! 2.怎么用c ...

  7. c语言22阶乘太大,C语言计算大数阶乘的方法

    C语言计算大数阶乘的方法,整数,数组,阶乘,本文,格式 C语言计算大数阶乘的方法 易采站长站,站长之家为您整理了C语言计算大数阶乘的方法的相关内容. 本文实例为大家分享了C语言计算大数阶乘的具体代码, ...

  8. c语言 n阶阶乘尾0个数,计算n的阶乘(n!)末尾0的个数

    题目: 给定一个正整数n,请计算n的阶乘n!末尾所含有"0"的个数. 举例: 5!=120,其末尾所含有的"0"的个数为1: 10!= 3628800,其末尾所 ...

  9. C语言使用递归法计算n的阶乘

    C语言使用递归法计算n的阶乘 #include <stdio.h> long Fact(int n); int main(){int n;long ret;printf("Inp ...

  10. day08 C语言初阶——例题:计算n的阶乘,计算1!+2!+3!+...+10!

    day08 谁能横刀立马,唯我飞牛大将军! 今天做点题778: 1.计算n的阶乘. #include<stdio.h> #include<windows.h> #pragma ...

最新文章

  1. X-Content-Type-Options: nosniff
  2. x86中的页表结构和页表项格式
  3. 计算机组成 面试 ---杂货铺
  4. nodejs(1)---mongodb
  5. Uipath 学习栏目基础教学:4Uipath 循环语句
  6. LRU原理及其实现(C++)
  7. 全连接层的作用_python构建计算图2——全连接层
  8. linux的free会擦出磁盘吗,如何在 Linux 上检查可用的磁盘空间 | Linux 中国
  9. 利用SPI编写类似sockscap的代理工具
  10. SPSS常用的几种统计分析
  11. TS文件格式详解及解封装过程
  12. Android VideoView 循环播放视频
  13. 电商运营数据分析常用分析指标--交易数据指标、品类分析数据指标与内容分析数据指标
  14. 震惊!让90%的程序员一看就会的入门级AI项目!
  15. 如何克服自己的懒惰-第二弹
  16. js正则表达式判断非负数和是否为网址
  17. 求出本周是第几周,本周的周一和周日时间
  18. java获取月份有几周_java 获取当前日期是本月的第几周,且当月一共有几周
  19. 在ROS上实现Seed robotics R8HD机械手与Ur5机械臂的连接与轨迹规划(上)模型连接
  20. iosetup mysql_InnoDB:Error:io_setup()failedwithEAGAIN

热门文章

  1. 小恐龙游戏制作挑战:第9天-打完大部分计分器模块的代码
  2. 微信支付系列(三)之二维码扫码支付
  3. 显著性水平与p值的区别
  4. Python解析XML文档
  5. 自媒体运营技巧之抖音快手怎么上热门
  6. matlab 对数回归,[线性模型] 对数几率回归(Logistic Regression)
  7. c语言笛卡尔坐标系,CAD笛卡尔坐标系(直角坐标系),极坐标系精讲,看完秒会...
  8. 原生JS实现的跳一跳小游戏完整实例
  9. 经济机器是如何运行的(观后感)
  10. Power Designer 概念数据模型导出 逻辑数据模型和物理数据模型 生成数据库脚本