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)}`);