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