Skip to content

Instantly share code, notes, and snippets.

@Mark-Uri
Created May 10, 2025 14:55
Show Gist options
  • Save Mark-Uri/441cdb160ca8806ae0a6318e10655f14 to your computer and use it in GitHub Desktop.
Save Mark-Uri/441cdb160ca8806ae0a6318e10655f14 to your computer and use it in GitHub Desktop.
function
Написать функцию, которая принимает 2 числа и возвращает -1, если первое меньше чем второе, 1 — если первое больше чем второе и 0 — если числа равны.
const number = function (a,b)
{
if(a<b) return -1;
if(a>b) return 1;
return 0;
}
console.log(number(1,2));
console.log(number(2,1));
console.log(number(1,1));
2. Написать функцию, которая вычисляет факториал переданного ей числа.
const factorial = function (a)
{
if(a<0) return undefined;
if(a===0 || a===1) return 1;
return a*factorial(a-1);
}
console.log(factorial(5));
console.log(factorial(0));
console.log(factorial(-1));
3. Написать функцию, которая принимает три отдельные цифры и превращает их в одно число. Например: цифры 1, 4, 9 превратятся в число 149.
const number = (a,b,c) => +(a+''+b+c);
console.log(number(1,2,3));
4. Написать функцию, которая принимает длину и ширину прямоугольника и вычисляет его площадь. Если в функцию передали 1 параметр, то она вычисляет площадь квадрата.
const area = (...args) =>
{
if(args.length === 1) return args[0]**2;
else if(args.length === 2) return (args[0]*args[1]);
else return null;
}
console.log(area(2,3));
console.log(area(2));
console.log(area());
6. Написать функцию, которая принимает минимальное и максимальное значения для диапазона и выводит только те числа из диапазона, которые являются совершенными. Используйте написанную ранее функцию, чтоб узнавать совершенное число или нет.
const perfectnum = a =>
{
if(a<=1)return false;
let sum = 0;
for(let i = 0; i<a; i++)
{
if(a%i===0)sum+=i;
}
return sum===a;
}
const getperfectnum = function (min,max)
{
const mas = [];
for(let i = min; i<=max; i++)
{
if(perfectnum(i)) mas.push(i);
}
return mas;
}
console.log(getperfectnum(1,100));
7. Написать функцию, которая принимает время (часы, минуты, секунды) и выводит его на экран в формате «чч:мм:сс». Если при вызове функции минуты и/или секунды не были переданы, то выводить их как 00.
const time = function (h,m=0,s=0)
{
if(h<0 || m<0 || s<0) return undefined;
else if(h===0 && m===0 && s===0) return 0;
else if(h>12 || m>60 || s>60) return undefined;
else
{
return ('0'+h).slice(-2)+':'+('0'+m).slice(-2)+':'+('0'+s).slice(-2);
}
}
console.log(time(12,25,32));
console.log(time(1,0));
console.log(time(1));
console.log(time(-1,2,3));
console.log(time(-1,2));
console.log(time(-1));
8. Написать функцию, которая принимает часы, минуты и секунды и возвращает это время в секундах.
const time = (h=0,m=0,s=0) =>
{
return h*3600+m*60+s;
}
console.log(time(1,2,3));
console.log(time(1,2));
console.log(time(1));
9. Написать функцию, которая принимает количество секунд, перевод их в часы, минуты и секунды и возвращает в виде строки «чч:мм:сс».
const time = function (sec)
{
const h = Math.floor(sec/3600);
const m = Math.floor((sec % 3600)/60);
const s= sec % 60;
return ('0'+h).slice(-2)+':'+('0'+m).slice(-2)+':'+('0'+s).slice(-2);
}
console.log(time(123));
console.log(time(732));
console.log(time(3661));
10. Написать функцию, которая считает разницу между датами. Функция принимает 6 параметров, которые описывают 2 даты, и возвращает результат в виде строки «чч:мм:сс». При выполнении задания используйте функции из предыдущих 2 заданий: сначала обе даты переведите в секунды, узнайте разницу в секундах, а потом разницу переведите обратно в «чч:мм:сс».
const time = (h=0,m=0,s=0) =>
{
return h*3600+m*60+s;
}
const time2 = function (sec)
{
const h = Math.floor(sec/3600);
const m = Math.floor((sec % 3600)/60);
const s= sec % 60;
return ('0'+h).slice(-2)+':'+('0'+m).slice(-2)+':'+('0'+s).slice(-2);
}
const time3 = (h1,m1,s1,h2,m2,s2) =>
{
const t1 = time(h1,m1,s1);
const t2 = time(h2,m2,s2);
const diff = Math.abs(t1 - t2);
return time2(diff);
}
console.log(time3(12, 30, 0, 14, 0, 0));
console.log(time3(10, 0, 0, 8, 15, 15));
console.log(time3(0, 0, 0, 0, 0, 59));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment