Acertijo número de tres cifras

Tomamos un número de tres cifras, de modo que no sean las tres iguales; por ejemplo 637. A continuación formamos otro número, ordenando las cifras de mayor a menor. Resulta 763. Formamos otro, ordenándolas de menor a mayor. Resulta 367. Restamos 763 – 367 = 396. A este último número le damos la vuelta, 693, y sumamos los dos últimos: 693 + 396 = 1.089.
         Repetimos con 475 —-> 754 – 457 = 297, 297 + 792 = 1.089.
         ¿Qué misterio es éste? ¿Será verdad que partiendo de cualquier número resulta siempre 1.089? ¿Por qué?

 

acertijo

libreria2

Ejercicio último día del mes

Con función:

 function ultimoDia(anyo, mes) {
                var fecha = new Date(anyo, mes, 28);
                var cont = 0;
                do {
                    fecha.setDate(fecha.getDate() + 1);
                    cont++;
                } while (fecha.getMonth() === mes);
                return 27 + cont;
            }

  function ultimoDia2(anyo, mes) {
                var fecha = new Date(anyo, mes, 29);
                var cont = 0;
                while (fecha.getMonth() === mes) {
                    fecha.setDate(fecha.getDate() + 1);
                    cont++;
                }
                return 28 + cont;
            }
            function ultimoDia3(anyo, mes) {
                var fecha = new Date(anyo, mes, 32);
                return 32-fecha.getDate();
            }

Modificando la clase Date:

Date.prototype.lastMonthDay = function () {
                var cont = 0;
                var fecha = new Date(this.getFullYear(), this.getMonth(),28);
                do {
                    fecha.setDate(fecha.getDate() + 1);
                    cont++;
                } while (fecha.getMonth() === this.getMonth());
                return 27 + cont;
            }

Ejercicio dados


var dados = {
    dado: [0, 0, 0, 0, 0, 0],
    lanzamientos: function () {
        var total = 0;
        for (var i = 0; i < this.dado.length; i++) {
            total += this.dado[i];
        }
        return total;
    },
    tirada: function () {
        var tirada = Math.floor(Math.random() * 6) + 1;
        this.dado[tirada - 1]++;
        return tirada;
    },
    tiradas: function (veces) {
        var dados = "";

        for (var i = 0; i < veces; i++)
        {
            dados += this.tirada().toString();
        }

        return dados;
    },
    parchis: function () {
        var dados = "";
        var tirada;
        do {
            tirada = this.tirada().toString();
            dados += tirada;
        } while (tirada !== "5");
        return dados;
    },
    parchis2: function () {
        var dados = "";
        do {
            dados += this.tirada().toString();
        } while (!dados.endsWith("5"));
        return dados;
    },
    parchis3: function () {
        var dados = "";
        var n = this.dado[4];
        do {
            dados += this.tirada().toString();
        } while (n === this.dado[4]);
        return dados;
    },

    paCasa: function () {
        var dados = "";
        do {
            dados += this.tirada().toString();
        } while (!dados.endsWith("666"));
        return dados;
    },
    paCasa2: function () {
        var dados = "";
        var seis = 0;
        var tirada;
        do {
            tirada = this.tirada().toString();
            dados += tirada;
            if (tirada === "6") {
                seis++;
            } else {
                seis = 0;
            }
        } while (seis < 3);
        return dados;
    }

};