# Solutions to the exercises

```<?php
/*
* Created on Feb 18, 2008
*
* Solutions to in-class exercises.
*
*/
?>
<HTML>
<TITLE>Sum Example</TITLE>
<BODY>
<H4>Computing a sum</h4>
<?php
// Initialize a sum to 0, then repeated add m, (m+1), ..., n to it.
function sum(\$m, \$n) {
\$sum = 0;
for (\$k = 0; \$k <= \$n; \$k++) {
\$sum += \$k;
}
return \$sum;
}

\$x = 1;
\$y = 10;
echo "The sum of \$x ... \$y is " . sum(\$x, \$y) . "<BR>";
echo "The sum of 10 ... 20 is " . sum(10, 20) . "<BR>";

// Initialze a product, then repeated multiply it by 1, 2, ..., \$n
function factorial(\$n) {
\$product = 1;
for (\$k = 1; \$k <= \$n; \$k++)
\$product *= \$k;
return \$product;
}

// For CS Majors: A recursive factorial -- it calls itself instead of using a loop
function rFactorial(\$n) {
if (\$n == 0)
return 1;
else
return \$n * rFactorial(\$n-1);
}

echo "0! is " . factorial(0) . "<BR>";
echo "5! is " . factorial(5) . "<BR>";
echo "10! is " . factorial(10) . "<BR>";

// Go through each letter of the string comparing it to a blank.
//  If it's blank, add 1 to the counter.
function countBlanks(\$str) {
\$count = 0;
for (\$k=0; \$k < strlen(\$str); \$k++)
if (\$str[\$k] == ' ')
++\$count;
return \$count;
}

echo "'hello world!' has " . countBlanks("hello world!") . " blanks<BR>";
echo "' hello world! this is a test ' has " . countBlanks(" hello world! this is a test ") . " blanks<BR>";

?>
</BODY>
</HTML>

```