Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Интересное задание codewars.com (https://javascript.ru/forum/misc/73461-interesnoe-zadanie-codewars-com.html)

j0hnik 19.04.2018 02:29

уровень сложности 6Kyu (новичок+)

нужно дописать функцию которая возводит каждую цифру в квадрат

sd=x=>ваш код;

1) ваш код : не может превышать 30 символов

вход/выход

sd(0)=>    0
sd(64)=>   3616
sd(1111)=> 1111
sd(2222)=> 4444
sd(3333)=> 9999
sd(3212)=> 9414
sd(1234)=> 14916
sd(77455754)=> 4949162525492516
sd(99999999)=> 8181818181818181


решений множество

на входе - выходе Number

Белый шум 19.04.2018 04:29

sd=x=>+[...x+""].map(n=>n*n).join("") //если убрать плюс в начале, то уложится в 30 символов, но результат будет строкой, а не Number
//sd=x=>+[...x+""].reduce((s,n)=>s+n*n,"") //так длиннее получается

function test(n, res){
  var r = sd(n);
  console.log('sd('+n+')='+r+'; ', r===res);
}
test(64, 3616)
test(1111, 1111)
test(2222, 4444)
test(3333, 9999)
test(3212, 9414)
test(1234, 14916)
test(77455754, 4949162525492516)
test(99999999, 8181818181818181)

Цитата:

Сообщение от рони
Белый шум, ещё раз поздравляю!!!

Цитата:

Сообщение от j0hnik
О ВЕЛИКИЙ БЕЛЫЙ ШУМ! Красавчег!

Перехвалили %)

j0hnik 19.04.2018 04:39

Белый шум,
решается даже в 28

Белый шум 19.04.2018 07:13

Цитата:

Сообщение от j0hnik
решается даже в 28

Уговорил, шайтан %)
sd=x=>+(x+"").replace(/./g,n=>n*n)

function test(n, res){
  var r = sd(n);
  console.log('sd('+n+')='+r+'; ', r===res);
}
test(64, 3616)
test(1111, 1111)
test(2222, 4444)
test(3333, 9999)
test(3212, 9414)
test(1234, 14916)
test(77455754, 4949162525492516)
test(99999999, 8181818181818181)

j0hnik 20.04.2018 05:56

уровень сложности 2Kyu (Бородатый кодер)

Создайте регулярное выражение, способное оценивать двоичные строки (которые состоят только из 1 и 0) и определять, является ли данная строка числом, делящимся на 7.

function regexp(bin){
	const solution = /ваш код/;
	var dec = parseInt(bin,2);
	return solution.test(bin)+' => '+dec+'/7='+dec/7;
}

console.log(regexp('110001'));


для тех кто шарит в регулярках и двоичном коде.

Alexandroppolus если решали сразу не подсказывайте. ;)

Alexandroppolus 20.04.2018 14:03

Цитата:

Сообщение от j0hnik
Alexandroppolus если решали сразу не подсказывайте.

не, эту не решал. Я решал про делимость на 3 (ссылка на пред. странице), там уже указан конечный автомат, надо просто его зарегексить.

Здесь ещё КА придумать надо, или найти )

Кстати, 'Anti-cheat tests' здесь хреновые, пример того как не надо делать. Вот такой вариант нечестного решения прокатывает:
const solution = new RegExp('.');
var str = solution.test.toString();
solution.test = function(x) { /* тут любое решение )) */ };
solution.test.toString = function() { return str; };

j0hnik 20.04.2018 16:41

Alexandroppolus,
Не натыкались там на задачку где нужно взломать 32-х битный ключ, который меняется каждые 12 сек? как такие решаются?

Alexandroppolus 20.04.2018 16:43

j0hnik,
дай ссылку, гляну

там всякие бывают, некоторые хрен поймешь как делать

j0hnik 20.04.2018 16:56

Alexandroppolus,
https://www.codewars.com/kata/tap-in...ain/javascript

j0hnik 20.04.2018 16:57

Alexandroppolus,
Какой у вас там Kuy ?


Часовой пояс GMT +3, время: 09:29.