JSFiddle - React, Tailwind, and code Playground

by tomexx

JavaScript

var checkCrossing = function(clock_bad, clock_good) {
	if((clock_good - clock_bad >= 0) && (clock_good - clock_bad <= 1)) {
        return true;
    } else {
    	return false;
    }
}

var clocks = function(clock_bad, clock_good) {
    var numberOfCrossings = 0;
    
    for(var i = 0; i <= 23; i++) {
        if(checkCrossing(clock_bad, clock_good)) {
            numberOfCrossings++;
            console.log("crossed at: " + clock_bad + " " + clock_good);
        }

        clock_bad--;
        if(clock_bad === -1) {
            clock_bad = 23;
        }

        clock_good++;
        if(clock_good === 24) {
            clock_good = 0;
        }
        console.log(clock_bad + " " + clock_good);
    }
    
    // double the results because analogue clock has 12 steps, not 24
    numberOfCrossings *= 2;

    console.log("result for " + clock_bad + ", " + clock_good + " => " + numberOfCrossings + " crossings on analogue clock");
    console.log("---------------------------------------------");
    
    
    
};

clocks(0, 0);
clocks(2, 5);
clocks(16, 23);