Post/Code

HomeAboutUsesNow

FizzBuzz and other exercises.

  • Exercise 2 from Eloquent JavaScript

    //Problem: Print out all numbers from 1 to 100. When divisible by 3 print Fizz, then divisible by 5 print Buzz, when divisible by both 3 and 5 print FizzBuzz
    // Solution: JS - Loop through all the numbers, check modulo 3, 5 and 3 and 5, print appropriate word
    
    function fizzBuzz(min, max) {
        
        function fizzOrBuzz (number, divisorA, divisorB) {
            if (divisorB) {
                return ((number % divisorA === 0) && (number % divisorB === 0))  
            } else {
                return number % divisorA === 0
            }
        }
        
        for (var i = min; i <= max; i++) {
            if (fizzOrBuzz(i, 3, 5)) {
                console.log('FizzBuzz (', i , ')');
            } else if (fizzOrBuzz(i, 3)) {
                console.log('Fizz (', i, ')');
            } else if (fizzOrBuzz(i, 5)) {
                console.log('Buzz (', i , ')');
            } else {
                console.log(i);
            }
        }
    }
    
    fizzBuzz(1, 100);
    
  • Exercise 3 from Eloquent JavaScript

    // Problem: Draw out a chessboard of 8*8 using the space and # characters, alternating the start character. 
    // Solution: JS - Use a loop to draw out the columns then at the end, alternate a boolean to start with one character or the other. 
    
    function chessBoard(spread) {
        var blank = false;
        var a = ' ', b = '#', row = '';
        
        for (var c = 1; c <= spread*spread; c++) {
            if (c % spread === 0) {
                row += '\n'
            }
            else if(blank) {
                row += a;
                blank = !blank;
            } else {
                row += b
                blank = !blank;
            }
        }
        console.log(row);
    }
    
    chessBoard(8);
    
  • Exercise 4 from Eloquent JavaScript

    // Problem: Return the minimum number between two numbers
    // Solution: Accept two arguments and determime which is less
    
    function min(a, b) {
        if (typeof(a) === 'number' && typeof(b) === 'number') {
            var min = a < b;
            return min ? a : b
        } else {
            return NaN;
        }   
    }
    
    console.log(min(3,-9));
    
  • Exercise 5 from Eloquent JavaScript

    // Problem: Use recursion to determine whether a number is even, if even, return true
    // Solution: Create a function that returns true if number is 0, false if number is 1, else subtract 2 from the number
    
    function isEven(number){
        if(number < 0) {
            number = number * -1;
        }
    
        if (number === 0) {
            return true;
        } else if (number === 1) {
            return false;
        } else {
            number -= 2;
            return isEven(number);
        }
    }
    
    console.log(isEven(-34));
    
  • Exercise 6 from Eloquent JavaScript

    // Problem: Create a function that counts how many times a provided letter appears in a string
    // Solution: Loop through the string using .charAt to determine whether the letter is a match
    function countChars(string, letter){
        var count = 0;
        for (var i = 0; i < string.length; i++) {
            if (string.charAt(i) === letter) {
                count+=1;
            }
        }
        return count;
    }
    
    console.log(countChars('chakkalakka', 'a'));
    
  • Calculate prime numbers in a range

    function getPrimes(min, max) {
    
        function isPrimeBruteForce(number){
            for (var i = 2; i < (number - 1); i++) {
                if (number % i === 0) {
                    return false;
                }
            }
            return true
        }
    
        if (min < max && min > 1 && max > 1) {
            var primes = [];
            
            for (var i = min; i < max; i++) {
                if(isPrimeBruteForce(i)) {
                    primes.push(i);
                }
            }     
            return primes;
        } else {
            return -1;
        }
    }
    
    console.log(getPrimes(3, 100));
    
  • Exercise 7 from Eloquent JavaScript

    function range(start, end, increment) {
        var arr = [];
        var inc = 1;
        if (increment) {
            inc = increment;
        } 
        for (var i = start; i <= end; i+=inc) {
            arr.push(i);
        }
        return arr;
    }
    
    function sum(array) {
        var sum = 0;
        for (var i = 0; i < array.length; i++) {
            sum = sum + array[i];
        }
        return sum;
    }
    
    console.log(sum(range(1,10, 2)));