Technical Interview Question – Pascal’s Triangle

Here is more complicated question which is sometimes asked during a technical interview.

Write a function that prints out the first n rows of Pascal’s triangle (with f(1) yielding the row consisting of only the element 1). This can be done either by summing elements from the previous rows or using a binary coefficient or combination function. Behavior for n <= 0 does not need to be uniform, but should be noted.

Pascal’s triangle is an arithmetic and geometric figure first imagined by Blaise Pascal. Its first few rows look like this:

   1
  1 1
 1 2 1
1 3 3 1

Each element of each row is either 1 or the sum of the two elements right above it. For example, the next row would be 1 (since the first element of each row doesn’t have two elements above it), 4 (1 + 3), 6 (3 + 3), 4 (3 + 1), and 1 (since the last element of each row doesn’t have two elements above it). Each row n (starting with row 0 at the top) shows the coefficients of the binomial expansion of (x + y)n.

function pascalsTriangle($num)
{
    $c = 1;
    $triangle = Array();

    for($i=0;$i<=$num;$i++) {
        $triangle[$i] = Array();
        if(!isset($triangle[$i-1])) {
            $triangle[$i][] = $c;
        }
        else{
            for($j=0; $j < count($triangle[$i-1])+1; $j++){
                if (isset($triangle[$i-1][$j-1]) && isset($triangle[$i-1][$j])) {
                    $triangle[$i][] = $triangle[$i-1][$j-1] + $triangle[$i-1][$j] 
                }
                else {
                    $triangle[$i][] = $c;
                }
            }
        }
    }

    return $triangle;
}
 
$tria = pascalsTriangle(8);
foreach($tria as $val) {
    foreach($val as $value) {
        echo $value . ' ';
    }
    echo '
'; }

Technical Interview Question – Fizz Buzz

Here is a common question that’s usually asked in the first-round interview stage. The typical question is something like:

Print out the numbers 1 to 100. Where the number is a multiple of 3, print ‘Fizz’, otherwise if it is a multiple of 5 print ‘Buzz’. If the number is a multiple of 3 and 5, print ‘FizzBuzz’.

// PHP

for ($i = 1; $i <= 100; $i++)
{
    if ($i % 3 == 0 && $i % 5 == 0) {
        echo 'FizzBuzz';
    }
    else if ($i % 3 == 0) {
        echo 'Fizz';
    }
    else if ($i % 5 == 0){
        echo 'Buzz';
    }
    else {
        echo $i;
    }
}
# PERL

for (my $count = 1; $count <= 100; $count++)
{
    if (($count % 3 == 0) && ($count % 5 == 0)) {
        print "FizzBuzz\n";
    }
    elsif ($count % 3 == 0) {
        print "Fizz\n";
    }
    elsif ($count % 5 == 0) {
        print "Buzz\n";
    }
    else {
        print $count . "\n";
    }
}
// JAVASCRIPT

for (var count = 1; count <= 100; count++)
{
    if ((count % 3 == 0) && (count % 5 == 0)) {
        console.log('FizzBuzz');
    }
    else if (count % 3 == 0) {
        console.log('Fizz');
    }
    else if (count % 5 == 0) {
        console.log('Buzz');
    }
    else {
        console.log(count);
    }
}
// JAVA

public class FizzBuzz {                      
    public static void main(String[] args) {   
        for(int i = 1; i <= 100; i++) {                    
            if (((i % 5) == 0) && ((i % 3) == 0))            
                System.out.println("FizzBuzz");    
            else if (i % 3 == 0) {
                System.out.println("Fizz"); 
            }
            else if (i % 5 == 0) {
                System.out.println("Buzz"); 
            }
            else {
                System.out.println(i);
            }
        }
    }
}
// PYTHON

for count in xrange(1,101):
    if count % 5 == 0 and count % 3 == 0:
        print "FizzBuzz"
    elif count % 3 == 0:
        print "Fizz"
    elif count % 5 == 0:
        print "Buzz"
    else:
        print count