Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.03.2019, 20:43
Новичок на форуме
Отправить личное сообщение для prox11 Посмотреть профиль Найти все сообщения от prox11
 
Регистрация: 13.03.2019
Сообщений: 9

Задания по javascript
Помогите пожалуйста решить последние 2 задания, решил все кроме этих двух, только начинаю осваивать js, буду очень благодарен


1. Напишите скрипт, доказывающий или проверяющий, что для множества натуральных чисел выполняется равенство: 1+2+...+n = n(n+1)/2, где n - любое натуральное число.
2. Расстояние между двумя словами равной длины - количество букв, в которых различаются эти слова. В заданном предложении найти пару наиболее далеко удаленных слов заданной длины.
Ответить с цитированием
  #2 (permalink)  
Старый 13.03.2019, 21:21
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 2,943

Первое:
function func(n){
	let sum=0,
		i=1;
		
	while(i<=n)
		sum+=i++;
	
	return sum===n*(n+1)/2;
};
alert(func(5));
Ответить с цитированием
  #3 (permalink)  
Старый 13.03.2019, 23:33
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 799

function distance(word1, word2) {
	if(word1.length !== word2.length) throw new Error("слова разной длины");

	return [...word1].reduce((m, v, i) => v !== word2[i] ? m + 1 : m, 0);
}

function* pairs(xs) {
	for(const [x, ...ys] of tails(xs))
		for(const y of xs)
			yield { pair: [x, y], distance: distance(x, y) };
}

function* tails(xs) {
	const a = [...xs];

	while(a.length) {
		yield [...a];
		a.shift();
	}
}

function findFurthestPair(sentence, wordLength) {
	const words = sentence.split(/[–—̶­˗“”„ _\-.()'",!?:;\r\n\t]+/).filter(word => word.length === wordLength);
	let match = { pair: null, distance: -1 };

	for(const { pair, distance } of pairs(words)) {
		if(distance > match.distance)
			match = { pair, distance };
	}

	return match.pair;
}

var pair = findFurthestPair(`
	Помогите пожалуйста решить последние 2 задания, решил все кроме этих двух, только
	начинаю осваивать js, буду очень благодарен

	1. Напишите скрипт, доказывающий или проверяющий, что для множества натуральных чисел
	выполняется равенство: 1+2+...+n = n(n+1)/2, где n - любое натуральное число.
	2. Расстояние между двумя словами равной длины - количество букв, в которых различаются эти
	слова. В заданном предложении найти пару наиболее далеко удаленных слов заданной длины.
`, 10);

alert(pair);
Ответить с цитированием
  #4 (permalink)  
Старый 14.03.2019, 08:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 25,843

Malleys,

и как вариант ...
function distance(word1, word2) {
    if(word1.length !== word2.length) throw new Error("слова разной длины");

    return [...word1].filter((v, i) => v !== word2[i]).length;
}
Ответить с цитированием
  #5 (permalink)  
Старый 14.03.2019, 10:53
Новичок на форуме
Отправить личное сообщение для prox11 Посмотреть профиль Найти все сообщения от prox11
 
Регистрация: 13.03.2019
Сообщений: 9

Cпасибо Большое!!!!
Ответить с цитированием
  #6 (permalink)  
Старый 14.03.2019, 19:50
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 626

Новая, но не хипстерская(!) фича языка. Пример этого вашего lookbehind в регексах:

var sentence = 'a bb ccc dddd eee _ff g';
var wordLength = 2;

var words = sentence.match(RegExp('(?<![a-z])[a-z]{' + wordLength + '}(?![a-z])', 'ig'));
alert(words.join('\n'));

Последний раз редактировалось Alexandroppolus, 14.03.2019 в 19:52.
Ответить с цитированием
  #7 (permalink)  
Старый 25.03.2019, 19:28
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 626

Сообщение от prox11
1. Напишите скрипт, доказывающий или проверяющий, что для множества натуральных чисел выполняется равенство: 1+2+...+n = n(n+1)/2, где n - любое натуральное число.
вот кстати странная задачка. Как это можно доказать скриптом??
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задания для javascript! Slejv Общие вопросы Javascript 1 19.10.2015 11:51
Тестовые задания для Javascript junior xfreewindx Работа 16 10.09.2013 23:21
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 18:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 19:34
Какой способ задания значения переменной в javascript коде корректен user_robot Общие вопросы Javascript 3 08.12.2009 16:25