I am new in php, I am solving one task.
- Create a form with 2 text fields to enter only numbers (treat) and will mean number and power.
- After pressing the button the result is displayed on the same page, and the result is determined by recursive function
- in case you forget to enter a number, the number 2 will be inserted automatically.
I have this for now, but I don’t know how to proceed. Can you advise me please?
JavaScript
x
<!DOCTYPE html>
<html>
<head>
<title>Task</title>
</head>
<body>
<form method="post">
Input number:
<input type="number" name="number1" /><br><br>
Input power:
<input type="number" name="number2" /><br><br>
<input type="submit" name="submit" value="Submit">
</form>
<?php
header("Content-Type: text/html; charset=windows-1250");
if(isset($_POST['submit']))
{
$number1 = $_POST['number1'];
$number2 = $_POST['number2'];
echo(pow($number1,$number2) . "<br>");
}
?>
</body>
</html>
Advertisement
Answer
I think you are missing a key concept here. What is recursion.
A recursive function is a function that calls itself during its execution. https://en.wikipedia.org/wiki/Recursion_(computer_science)
For your question this is an acceptable solution I believe:
JavaScript
<!DOCTYPE html>
<html>
<head>
<title>Task</title>
</head>
<body>
<form method="post">
Input number:
<input type="number" name="number1" /><br><br>
Input power:
<input type="number" name="number2" /><br><br>
<input type="submit" name="submit" value="Submit">
</form>
<?php
function pow_recursion($number, $power) {
if ($power == 0) {
return 1;
} else {
return $number * pow_recursion($number, $power - 1);
}
}
if(isset($_POST['submit']))
{
$number1 = $_POST['number1'];
$number2 = $_POST['number2'];
if (!$number2) {
$number2 = 2;
}
echo(pow_recursion($number1, $number2) . "<br>");
}
?>
</body>
</html>
Another implementation of the recursive function is
JavaScript
function pow_recursion($number, $power) {
if ($power == 0) {
return 1;
} elseif ($power % 2 == 0) {
$tmp = pow_recursion($number, intdiv($power, 2));
return $tmp * $tmp;
} else {
return $number * pow_recursion($number, $power - 1);
}
}
If I am not mistaken the difference in performance is N vs log(N).