PHP 析因问题
PHP Factorial Issue
我正在尝试学习 PHP 并在给定用户输入时计算数字的阶乘,但我似乎被难住了。我的第一个也是最后一个条件检查但是当我输入大于 2 的数字时我的结果总是错误的,这是我的代码:
<!DOCTYPE html>
<html>
<head>
<title>Factorial</title>
</head>
<body>
<form action="" method="GET">
Enter Number: <input type="text" name="num"><br>
<input type="submit" name ="submit">
</form>
Factorial Of Your Number:
<?php
function factorial($n){
if (ctype_digit($n))
{
if ($n <= 1)
{
echo "1";
}
else
{
echo $n * factorial($n - 1);
}
}
else
{
echo "false";
}
}
if(isset($_GET['submit']))
{
$s = $_GET["num"];
factorial($s);
}
?>
</body>
</html>
我尝试编辑此行的许多变体 echo $n * factorial($n - 1);但所有结果都是假的或错误的,我似乎无法破解。有任何想法吗?请注意,我试图将 php 保留在内部正文中,而不是外部 php 文件。
给你:
<?php
$num = $_POST["num"];
$factorial_value = 1;
for ($x=$num; $x>=1; $x--)
{
$factorial_value = $factorial_value * $x;
}
echo "Factorial of $num is $factorial";
?>
<form method="post">
Enter a num:
<input type="text" name="num">
<input type="submit" Value="CALCULATE YOUR FACTORIAL">
</form>
要使您的递归函数起作用,它需要 return 一个数字。否则,您的函数将尝试计算 $n * null
,这会引发错误。
function factorial($n){
if ($n <= 1) {
return 1;
} else {
return $n * factorial($n - 1);
}
}
if (isset($_GET['submit'])) {
$n = intval($_GET["num"]);
echo factorial($n);
}
查看此解决方案,在 PHP?
中找到给定数字的阶乘
<?php
function findFactorial($num){
$fact = 1;
for($i=1; $i<$num+1; $i++){
$fact = $fact*$i;
}
return $fact;
}
$num = 5;
print_r(findFactorial($num));
?>
我正在尝试学习 PHP 并在给定用户输入时计算数字的阶乘,但我似乎被难住了。我的第一个也是最后一个条件检查但是当我输入大于 2 的数字时我的结果总是错误的,这是我的代码:
<!DOCTYPE html>
<html>
<head>
<title>Factorial</title>
</head>
<body>
<form action="" method="GET">
Enter Number: <input type="text" name="num"><br>
<input type="submit" name ="submit">
</form>
Factorial Of Your Number:
<?php
function factorial($n){
if (ctype_digit($n))
{
if ($n <= 1)
{
echo "1";
}
else
{
echo $n * factorial($n - 1);
}
}
else
{
echo "false";
}
}
if(isset($_GET['submit']))
{
$s = $_GET["num"];
factorial($s);
}
?>
</body>
</html>
我尝试编辑此行的许多变体 echo $n * factorial($n - 1);但所有结果都是假的或错误的,我似乎无法破解。有任何想法吗?请注意,我试图将 php 保留在内部正文中,而不是外部 php 文件。
给你:
<?php
$num = $_POST["num"];
$factorial_value = 1;
for ($x=$num; $x>=1; $x--)
{
$factorial_value = $factorial_value * $x;
}
echo "Factorial of $num is $factorial";
?>
<form method="post">
Enter a num:
<input type="text" name="num">
<input type="submit" Value="CALCULATE YOUR FACTORIAL">
</form>
要使您的递归函数起作用,它需要 return 一个数字。否则,您的函数将尝试计算 $n * null
,这会引发错误。
function factorial($n){
if ($n <= 1) {
return 1;
} else {
return $n * factorial($n - 1);
}
}
if (isset($_GET['submit'])) {
$n = intval($_GET["num"]);
echo factorial($n);
}
查看此解决方案,在 PHP?
中找到给定数字的阶乘<?php
function findFactorial($num){
$fact = 1;
for($i=1; $i<$num+1; $i++){
$fact = $fact*$i;
}
return $fact;
}
$num = 5;
print_r(findFactorial($num));
?>