阶乘定义
非负整数n的阶乘简记为n!,在数学上定义为所有小于等于该数的正整数的乘积,并且定义0的阶乘等于1,用公式表示为:
n!=1×2×3×……×(n-1)×n
对于n!也可以用递归方式定义为如下形式:
n!=(n-1)!×n,且0!=1
根据这两种定义方式,下面给出在LabVIEW中编程实现求解n!的两种方法。
阶乘求解方法1:使用for循环+移位寄存器实现
这种方法实现相对来说比较简单,程序框图如下图所示:
在上图中,直接根据阶乘定义使用for循环与移位寄存器的思路实现n!的计算,for循环的次数为n次,移位寄存器的初始值为1,作n次乘法运算即可计算出n的阶乘。
注意,上图中,当n为0时,for循环执行次数为0次,n!的输出值直接为移位寄存器的初始值1,符合n阶乘的定义。
阶乘求解方法2:使用递归调用方法实现
这种方法根据阶乘的递归方式的定义进行实现。递归VI程序顾名思义是指一个VI在运行中可以调用自身的VI程序,在LabVIEW中可以容易的实现递归VI程序的设置。
对于本例要求计算n的阶乘,因为在程序运行中要调用自身,所以要将其设置为子程序,即在LabVIEW编程环境的图标/连接口区域定义该VI的输入输出参数,本例参数比较简单,在前面板中设计一个输入控件n、一个输出控件n!,两个控件的数据类型皆设置为U32类型,输入输出参数定义完成后,其前面板如下图所示&#