第五章
任务一:嵌套循环的使用
任务二:拓展小知识
小结
习题
首先,今天是个特殊的日子,是属于我们的程序员节日,1024
咳咳,好了既然今天是个特殊的日志那么我们更应该带着荣耀去努力学习,昨天遇见一道题:算出用户输入n!(n的阶乘⇔1*2*3*4*5*……*n),我们可以利用循环来解决,代码如下:
用户输入一个数值,然后我们根据此数值的大小来进行判断循环多少次,每次都要从小到大依次相乘至用户所输入的数值为止
#include<stdio.h> int main() { int n,sum=1; scanf("%d",&n); for(int i=1;i<=n;i++) { sum*=i; } printf("%d",sum); return 0; }
调试截图如下:3!=1*2*3=6,答案正确,
那么如果算“1!+2!+3!+……+n!”我们应该如何去解决呢?
那么这就要涉及到我们今天所讲的内容了,我们重点来讲解“嵌套循环的使用”,
我们知道,我圈住的这个循环,写的是“n!”,然而我们要计算“1!+2!+3!+……+n!”
那么我们就需要使用“嵌套循环”了,因为我们不仅需要上面这个循环来计算单个阶乘,还得需要另一个循环来实现多个阶乘之和,代码如下:#include<stdio.h>
#include<stdio.h> int main() { int n,sum,all=0; scanf("%d",&n); for(int j=1;j<=n;j++) { sum=1; for(int i=1;i<=j;i++) { sum*=i; } all+=sum; printf("%d\n",sum); } printf("%d",all); return 0; }
调试截图如下:我们来解释一下各行代码的含义
1.导入并使用必要的库头文件
2.创建核心主函数“int main()”
4.定义自变量,n代表的是用户输入并想要求的某个数的阶乘,sum用来记录每个阶乘的值,all代表所有阶乘之和
5.标准输入函数,让用户输入数值
6.“for()”循环,中,自变量“j”用来检测并判断运行了“n”个阶乘
8.因为每次每个小阶乘,比如2!=1*2,起始量都为1*…..*n,所以这里声明一下起始量,每次循环这个“for(int i=1;i<=j;i++)”循环都会重新改变sum的值,防止上个阶乘的数值干扰
9.这个“for()”循环,用来计算每个小阶乘的数值,
11.sum*=i⇔sum=sum*i
13.计算每次的小阶乘数值之和,all+=sum⇔all=all+sum
14.输出每次的小阶乘,如调试得,我们输入的是3,1!=1,2!=2,3!=6
16.输出所有小阶乘之和,1!+2!+3!+……+n!
嵌套循环,刚开始学都会很难理解,会很绕,所以大家要自信点,这类嵌套循环需要多多敲代码,多写练习题才能掌握,如果你长时间没有练习,再次遇到思路将会很难打开。
好的上述看懂之后,我们接着再次利用嵌套循环输出一个“乘法口诀表”,大家先自行思考思考,先休息10分钟,,,
评论抢沙发