![9247b987-6a13-eb11-8da9-e4434bdf6706.png](http://p05.5ceimg.com/content/9247b987-6a13-eb11-8da9-e4434bdf6706.png)
今天,加油鸭进阶初中,开始学习阶乘。
阶乘公式:
本质上就是连乘,特别的,
实现思路:通过For循环实现多次相乘,其中每一次的值通过反馈节点,参与下次的相乘。
前面板:
1.添加一个数值输入控件以及一个数值显示控件。
![9447b987-6a13-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/9447b987-6a13-eb11-8da9-e4434bdf6706.png)
前面板:
初级版本(不考虑 n 为 0 的情况):
1.“For循环”和“反馈节点”:右键》编程》结构》添加“For循环”和“反馈节点”。
其中循环次数为数值 n,反馈节点初始值设置为 1。
2.计算流程:“For循环”内部的计数器 i 从0开始,所以需要加 1,再进行运算。
i = 0 时,加 1 为 1,开始与反馈节点的初始值 1 相乘,输出 1,将 1 放置在反馈节点。
i = 1 时,加 1 为 2 ,开始与反馈节点第一次结果 1 相乘,输出 2,将 2 放置在反馈节点。
i = n-1 时,加 1 为 n ,开始与反馈节点结果
这就为后面的完善版本做了铺垫。
二.完善版本(考虑 n 为 0 的情况):
初级版虽然实现了阶乘,但是当 n 为 0 时,输出为 0 ,显示错误。
于是就需要添加条件判定,特殊的,当 n 为 0 时,输出为 1;其他条件使用初级版本内容。
鸭鸭想了很久,花了好大的精力,解决了这个问题。
1.添加条件断定:右键》编程》结构》条件结构,分两种情况。
n > 0:
计数器开始计数, i = 0 时,进入“假”判定,输出 1 ;
i = 1 时,进入“真”判定,输出 1 ;(相当于阶乘公式中的从 1 开始相乘)
以此类推,到 i = n 时,停止。
(比较:
初级版本:当输入 0 时,程序的循环不开启。
完善版本:当输入 0 时,程序的循环运行1次。)
![9547b987-6a13-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/9547b987-6a13-eb11-8da9-e4434bdf6706.png)
n > 0:
直接输出 1 。
![9647b987-6a13-eb11-8da9-e4434bdf6706.png](http://p05.5ceimg.com/content/9647b987-6a13-eb11-8da9-e4434bdf6706.png)
虽然累,但还是要加油鸭!