求阶乘的累加和c语言_求阶乘【C语言案例】

许多同学已经学习了阶乘的求法,比如要求整数n的阶乘,则n!=1×2×3×…×(n-1)×n。如:5!=1×2×3×4×5=120
之前我们学习过while循环、do-while循环,有英语基础的同学基本能读懂程序;但for循环里面的三个式子对于没有学过编程的同学来说是难以理解的,甚至觉得毫无关联,老师将通过本案例来告诉同学们三个式子的含义:for(条件式1 ; 条件式2 ;条件式3 )
for(单次表达式;条件表达式;末尾循环体),即 for(初始动作;循环继续的条件;循环每轮要做的动作)
其中,表示式皆可以省略,但分号不可省略,因为“;”可以代表一个空语句,省略了之后语句减少,即为语句格式发生变化,则编译器不能识别而无法进行编译。
可以这样:for( ; ; )
也可以这样:for( ; 条件式2 ; )     题目描述:    输入一个正整数N,输出N的阶乘。      样例输入:  4    样例输出:   24  实现思路:
问题中的n需要我们从键盘输入。要计算n的阶乘,就得有一个变量i从1遍历到n(循环实现),进入循环用一个变量result(初始值须为1)来“记住”本次的乘积result×i,随着i的增加,result=1×1,result=1×1×2,result=1×1×2×3…,当i增加到n时,result=n!,然后输出result。
while循环:
#include int main() {    int n ,i = 1,result = 1;  //小套路:对于求和程序,记录结果的变量初始化为0;对于求积程序,记录结果的变量初始化为1    scanf("%d", &n);    while(i <= n)      {       result*=i;  // 复合运算result=result*i       i++;    }    printf("n的阶乘为:%d\n", result);    return 0;}

for循环:
#include int main() {    int n ,i = 1,result = 1;  //小套路:对于求和程序,记录结果的变量初始化为0;对于求积程序,记录结果的变量初始化为1    scanf("%d", &n);    for (i = 1; i <= n; i++)  //i++  i+=1  i+=1都可以    //读成:对于一开始的i=1,如果i<=n,那么重复做循环体result=result*i,每一轮循环做完后,使i=i+1    {       result*=i;  // 复合运算result=result*i    }    printf("n的阶乘为:%d\n", result);    return 0;}

思考题:
我们的程序是通过1乘到n来计算n!,是否可以换个方向计算呢?从n乘到1,如果按照这个思路,我们的程序需要哪些改动呢?

连云港唯一一家正规编程机构,非拼装类机器人!专业的团队,南邮、东南教授研发的从入门到参加全国信息学奥林匹克竞赛课程体系!优质竞赛教研团队!

www.lygnck.com

搜索小程序查看课程体系:青少年编程与机器人教育1

我们的地址:连云港市海州区苍梧路苍梧小区北门东首20-6三楼

徐老师:17305185500

微信:18651728829

725a774bfae374af3d62af7b0a63a5c2.png

62f4c8e2913860c3102c6581f5d0f25d.png

84e95451b33b572904f6b3861655fc50.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值