Objective
Create a multiplication table for a randomly-chosen positive integer less than or equal to 100
.
Description
Time to go random!
In this exercise, you have to randomly come up with a positive integer less than or equal to 100
, and then create a multiplication table for that integer starting at 1
and going all the way up to 12
.
For instance, if the integer is 5
, you'll compute 5 x 1, 5 x 2, ..., all the way upto 5 x 12.
For the output, start with the following line:
where <integer>
is the randomly-chosen integer.
Next up, comes the multiplication table. Leave a blank line before printing the multiplication table.
Each row of the table is to be presented on a new line in the following form:
where <integer>
is the randomly-chosen integer, <i>
is the multiplier (starting at 1
, and incrementing with each new row) and <product_i>
is the product of these two numbers.
Shown below is an example to clarify all these outputs:
New file
Inside the directory you created for this course on PHP, create a new folder called Exercise-10-Multiplication-Tables and put the .php solution files for this exercise within it.
Solution
We'll start by computing the random integer. Let's call it $n
.
The random integer has to be positive (i.e. above 0
) and less than or equal to 100
. That is, it should be in the range 1 – 100. To generate a random number in this range, we'll call rand(1, 100)
.
Let's get done with this first followed by making the first output:
<?php
$n = rand(1, 100);
echo 'Multiplication table for ', $n, ":\n";
The next step is to print a blank line, so let's also get this done:
<?php
$n = rand(1, 100);
echo 'Multiplication table for ', $n, ":\n";
// Blank line.
echo "\n";
With this done, now we only have to print the multiplication table for the random integer. One way is to copy paste 12 lines of echo
, but as you'd agree, that's very repetitive, and totally against the DRY (Don't Repeat Yourself) principle.
The best option is to use a loop to repetitively execute print()
.
Which loop? for
or while
?
Well, for
is useful to iterate a specific number of times or go over a sequence, whereas while
is more suited to some condition-based iteration.
Definitely, we'll go with for
since we have to repeat a known number of times — 12 specifically.
The general form of each row in the multiplication table is given in the exercise's description above, and based on that we'll format the output:
<?php
$n = rand(1, 100);
echo 'Multiplication table for ', $n, ":\n";
// Blank line.
echo "\n";
for ($i = 1; $i <= 12; $i++) {
echo $n, ' x ', $i, ' = ', $n * $i, "\n";
}
This completes our exercise.