Logic 伪代码和集成方法的问题

Logic 伪代码和集成方法的问题,logic,pseudocode,Logic,Pseudocode,为程序创建逻辑,该程序连续提示用户输入数值,直到用户输入0。应用程序将该值依次传递给一个方法,该方法计算从1到输入数字(包括输入数字)的所有整数之和,并传递给一个方法,该方法计算到输入数字(包括输入数字)的所有整数的乘积 到目前为止,我的情况如下: BEGIN MAIN MODULE BEGIN Declare enteredNumber as Integer Do While (enteredNumber != 0) DISPLAY "Enter a positiv

为程序创建逻辑,该程序连续提示用户输入数值,直到用户输入0。应用程序将该值依次传递给一个方法,该方法计算从1到输入数字(包括输入数字)的所有整数之和,并传递给一个方法,该方法计算到输入数字(包括输入数字)的所有整数的乘积

到目前为止,我的情况如下:

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--);
}