【发布时间】:2016-10-21 00:28:58
【问题描述】:
我正在尝试制作一个计算数字阶乘的程序。我对 perl 不是很熟悉,所以我认为我缺少一些语法规则。
当我输入 5 时,程序应该返回 120。相反,它会返回几十个 1。当我尝试其他数字时,我仍然会得到 1,但更多或更少取决于我输入的数字是更高还是更低。
这是我的代码:
print"enter a positive # more than 0: \n";
$num = <STDIN>;
$fact = 1;
while($num>1)
(
$fact = $fact x $num;
$num = $num - 1;
)
print $fact;
system("pause");
这是我第一次在 Stack Overflow 上发帖,所以我希望我遵守所有发帖规则。
【问题讨论】:
-
阶乘实际上定义为零 (0! = 1),因此您应该要求一个非负数
标签: perl loops syntax while-loop factorial