伪代码和集成方法的麻烦

时间:2013-12-08 03:54:38

标签: logic pseudocode

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

1 个答案:

答案 0 :(得分:0)

声明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#语法

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

相关问题