伪代码和集成方法的问题



为程序创建逻辑,该程序不断提示用户输入数值,直到用户输入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

否则,返回总和模块的输入和输出的总和。这里的键,它传递1比输入少,所以最终模块会退出。

ELSE
  RETURN enteredNumber + CALL sumModule(enteredNumber - 1)

C++/C#语法

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

递归拯救了这一天!(和手腕)http://en.wikipedia.org/wiki/Recursion

最新更新