Soluciones Jaume

function factorial(num = 1) {
    if (isNaN(num) !== false || num < 0) {
        return false;
    }

    if (num === 0) {
        return 1;
    }

    let res = 1;

    for (let i = 1; i <= num; i++) {
        res *= i;
    }

    return res;
}

function repeat(string = null, num = 0) {
    if (isNaN(num) !== false || num < 1) {
        return false;
    }

    if (typeof string !== 'string') {
        return false;
    }
    
    let res = '';

    for (i = 0; i < num; i++) {
        res += string;
    }

    return res;
}

function perimetro(a = 0, b = 0) {
    if ((typeof a !== 'number' || typeof b !== 'number') && (a < 1 || b < 1)) {
        return false;
    }

    return (a + b) * 2;
}

function half(a = 0, b = 0, c = 0)
{
    if (typeof a !== 'number' || typeof b !== 'number' || typeof c !== 'number') {
        return false;
    }

    if ((a === b) || (a === c)) {
        return a;
    } else if (b === c) {
        return b;
    }

    if (a < b && c > b) {
        return `\n\topc1 a: ${a} b: ${b} c: ${c} MITJ: ${a}`;
    } else if (c < b && b < a) {
        return `\n\topc2 a: ${a} b: ${b} c: ${c} MITJ: ${c}`;
    } else if ((a < b && b > c) && c > a) {
        return `\n\topc3 a: ${a} b: ${b} c: ${c} MITJ: ${a}`;
    } else if (a < b && b > c) {
        return `\n\topc4 a: ${a} b: ${b} c: ${c} MITJ: ${c}`;
    } else if ((a > b && b < c) && c < a) {
        return `\n\topc5 a: ${a} b: ${b} c: ${c} MITJ: ${b}`;
    } else if ((a > b && b < c) && c > a) {
        return `\n\topc6 a: ${a} b: ${b} c: ${c} MITJ: ${b}`;
    } else {
        return `cas no contemplat de a: ${a} b: ${b} c: ${c}`;
    }
}

function evenOdd(numA = 0, numB = 0) {
    if (typeof numA !== 'number' || typeof numB !== 'number') {
        return false;
    }
    
    if ((0 === numA % 2 && 0 === numB % 2) || (0 !== numA % 2 && 0 !== numB % 2)) {
        return true;
    }

    return false;
}

function sum(a = 0, b = 0) {
    let sum = 0;

    if ( a == b) {
        return a;
    }

    if ( a > b) {
        sum = a;
        a = b;
        b = sum;
        sum = 0;
    }

    for (let i = a - 1; i < b; i ++) {
        sum += (i + 1);
    }

    return sum;
}


console.log(`\nEscribir una función factorial a la que le pasamos un número y nos devuelve el factorial de ese número (el factorial de 5 es 1*2*3*4*5, el de 3 1*2*3)`);
console.log(`Factorial: ${factorial(5)}`);
console.log('-'.repeat(10));

console.log(`\nEscribir una función repetirCadena a la que le pasamos una cadena y un número y nos devuelve la cadena repetida n veces: repetirCadena("hola",3) ->"holaholahola"`);
console.log(`Fase repetida: ${repeat('jaume', 3)}`);
console.log('-'.repeat(10));

console.log(`\nCrear una función perímetro a la que le pasamos dos lados y nos devuelve el perímetro de un rectángulo con esos dos lados (la suma de los lados multiplicado por 2)`);
console.log(`Perimetre: ${perimetro(5, 2)}`);
console.log('-'.repeat(10));

console.log(`\nCrear una función a la que pasemos tres números y nos devuelva el que está en la mitad (ni el más alto ni el más bajo). Si hay algún número que sea igual a otro que nos devuelva ese número.`);
console.log(`Dels 3 números el que esta a la meitat ni el més gran ni el més petit. Es: ${half(6, 7, 10)}`); // 6 -> Fet 1
console.log(`Dels 3 números el que esta a la meitat ni el més gran ni el més petit. Es: ${half(10, 7, 6)}`); // 6 -> Fet 2 
console.log(`Dels 3 números el que esta a la meitat ni el més gran ni el més petit. Es: ${half(6, 10, 7)}`); // 6 -> Fet 3
console.log(`Dels 3 números el que esta a la meitat ni el més gran ni el més petit. Es: ${half(7, 10, 6)}`); // 6 -> Fet 4
console.log(`Dels 3 números el que esta a la meitat ni el més gran ni el més petit. Es: ${half(10, 6, 7)}`); // 6 -> Fet 5
console.log(`Dels 3 números el que esta a la meitat ni el més gran ni el més petit. Es: ${half(7, 6, 10)}`); // 6 -> Fet 6

console.log(`\nCrear una función a la que le pasemos dos números y nos devuelva true si los dos son pares o impares y false si uno es par y el otro es impar`);
console.log(`Els 2 números son parells o imparells: ${evenOdd(0, 2)}`);
console.log(`Els 2 números son parells o imparells: ${evenOdd(1, 3)}`);
console.log(`Els 2 números son parells o imparells: ${evenOdd(2, 3)}`);
console.log('-'.repeat(10));

console.log(`\nUna función sumaEntre a la que le pasamos dos números y nos suma los números desde el primero hasta el último ambos incluídos. Ej: sumaEntre(4,8)->30 (4+5+6+7+8)`);
console.log(`Suma a partir de un número fins a un altre incloent el d'inici i final: ${sum(4, 8)}`);
console.log(`Suma a partir de un número fins a un altre incloent el d'inici i final: ${sum(8, 4)}`);
console.log(`Suma a partir de un número fins a un altre incloent el d'inici i final: ${sum(8, 8)}`);
console.log(`Suma a partir de un número fins a un altre incloent el d'inici i final: ${sum(-3, 6)}`);

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos