Logic 伪代码和集成方法的问题
为程序创建逻辑,该程序连续提示用户输入数值,直到用户输入0。应用程序将该值依次传递给一个方法,该方法计算从1到输入数字(包括输入数字)的所有整数之和,并传递给一个方法,该方法计算到输入数字(包括输入数字)的所有整数的乘积 到目前为止,我的情况如下:Logic 伪代码和集成方法的问题,logic,pseudocode,Logic,Pseudocode,为程序创建逻辑,该程序连续提示用户输入数值,直到用户输入0。应用程序将该值依次传递给一个方法,该方法计算从1到输入数字(包括输入数字)的所有整数之和,并传递给一个方法,该方法计算到输入数字(包括输入数字)的所有整数的乘积 到目前为止,我的情况如下: BEGIN MAIN MODULE BEGIN Declare enteredNumber as Integer Do While (enteredNumber != 0) DISPLAY "Enter a positiv
BEGIN
MAIN MODULE BEGIN
Declare enteredNumber as Integer
Do While (enteredNumber != 0)
DISPLAY "Enter a positive number (0-EXIT) : "
input enteredNumber
sumModule(enteredNumber)
OUTPUT enteredNumber
productModule(enteredNumber)
OUTPUT enteredNumber
EndWhile
END MAIN MODULE
sumModule(enteredNumber)
IF enteredNumber = 1 THEN
RETURN 1
ELSE
RETURN enteredNumber + sumModule(enteredNumber - 1)
productModule(enteredNumber)
IF enteredNumber = 1 THEN
RETURN 1
ELSE
RETURN enteredNumber * productModule(enteredNumber -1)
声明sum模块,它有1个整数输入和1个整数输出
sumModule(enteredNumber)
如果输入为1,则输出为1
IF enteredNumber EQUALS 1
THEN
RETURN 1
否则,返回sum模块的输入和输出之和。
这里的键,它传递的值比输入值少1,因此模块最终将退出
ELSE
RETURN enteredNumber + CALL sumModule(enteredNumber - 1)
C++/C#语法
递归节省了时间!(和手腕)
所以我在这门入门课程中只学习伪代码,所以我想知道为什么您要检查(n==1)以及(n--)的含义。谢谢你!(n==1)是退出条件;如果没有它,函数将永远无法解析为值。(n--)表示n-1。好的,那么您更新的代码将接受用户输入的所有数字,然后得到所有这些数字的总和(稍后我将添加一个输出语句)?这些模块中的每一个都将递归地调用自己,传入的比输入少1,直到输入为1。当输入不是1时,它将返回输入加上自包含调用的结果。这有效地建立了一个操作堆栈,等待下一个操作的结果?再次感谢
int sumModule(int n)
{
if (n == 1)
return 1;
return n + sumModule(n--);
}
int productModule(int n)
{
if (n == 1)
return 1;
return n * productModule(n--);
}